如何通过循环拼接多维数组的键名、原值与修改值为字符串?
实现多维数组到指定格式字符串的转换
这事儿其实挺简单的,核心思路就是遍历数组收集每个字段的格式化片段,最后把所有片段拼接起来。咱们直接上代码,边看边解释:
首先,先把你的原数组写出来:
$arr = [ 'first_name' => [ 'original' => 'Rahul', 'changes' => 'Manan' ], 'last_name' => [ 'original' => 'Shah', 'changes' => 'Patel' ], 'email_address' => [ 'original' => 'rahul@yahoo.com', 'changes' => 'manan@gmail.com' ] ];
接下来是关键的处理步骤:
- 先创建一个空数组,用来存储每个字段拼接好的小字符串片段
- 用
foreach循环遍历原数组的每一项 - 对每一项,按照
主键名 原值 => 修改值的格式拼接成字符串,塞进临时数组 - 最后用
implode()函数把临时数组里的所有片段用,连接起来,就是你要的结果了
完整代码如下:
// 初始化临时数组存储片段 $tempSegments = []; // 遍历原数组 foreach ($arr as $key => $values) { // 拼接单个字段的格式字符串 $segment = "$key {$values['original']} => {$values['changes']}"; // 把片段加入临时数组 $tempSegments[] = $segment; } // 拼接所有片段成最终字符串 $str = implode(', ', $tempSegments); // 输出看看结果 echo $str;
运行这段代码后,你会得到完全符合要求的字符串:first_name Rahul => Manan, last_name Shah => Patel, email_address rahul@yahoo.com => manan@gmail.com
额外小提示
如果你的数组可能存在某个字段缺少original或者changes的情况,可以加个简单的判断避免报错,比如:
foreach ($arr as $key => $values) { $original = $values['original'] ?? '无原值'; $changes = $values['changes'] ?? '无修改值'; $segment = "$key $original => $changes"; $tempSegments[] = $segment; }
这样就算数组有不完整的项,代码也能正常运行啦~
内容的提问来源于stack exchange,提问作者Mr.Happy
相关产品推荐
相关产品推荐

