如何将多行数组输出转为单行指定格式?是否有简便实现方法?
实现数组输出格式转换的两种方法
一、修改原PHP程序直接生成目标格式
如果这是你自己的PHP程序输出的print_r结果,完全不用写新程序,直接调整输出逻辑即可。遍历数组拼接成你需要的紧凑格式:
// 你的原数组 $data = [ 2019 => 15.63, 2020 => 4.96, 2021 => 42.92 ]; // 拼接目标格式字符串 $outputParts = []; foreach ($data as $year => $value) { $outputParts[] = "$year => $value"; } echo '[' . implode(', ', $outputParts) . ']';
执行这段代码会直接输出:[2019 => 15.63, 2020 => 4.96, 2021 => 42.92]
二、处理已有的输出文本(无需编写程序)
如果已经拿到了print_r输出的文本内容,用任意支持正则替换的文本编辑器(比如VS Code、Sublime Text)就能快速转换:
- 复制所有输出文本到编辑器中
- 使用正则替换批量处理:
- 第一步:删除开头的
Array和换行后的(,以及结尾的) - 第二步:查找正则表达式
^\s*\[(\d+)\] => ([\d.]+)$,替换为$1 => $2(这一步会去掉每行的缩进和方括号) - 第三步:把所有行用
,连接起来,再在首尾加上[]
- 第一步:删除开头的
或者用更一步到位的正则(适用于固定结构的数组):
- 查找:
Array\s*\(\s*\[(\d+)\] => ([\d.]+)\s*\[(\d+)\] => ([\d.]+)\s*\[(\d+)\] => ([\d.]+)\s*\) - 替换为:
[$1 => $2, $3 => $4, $5 => $6]
内容的提问来源于stack exchange,提问作者babygroot
相关产品推荐
相关产品推荐

