使用Foreach循环输出多维数组中Persona信息的问题求助
修复PHP遍历数组显示所有Persona的问题
嘿,我来帮你看看这段PHP代码的问题哈!咱们先揪出几个关键的小错误:
- 内层循环的变量名写错了!外层循环用的是
$persona,但你内层写成了$person,这是个未定义的变量,直接导致没法正确遍历数组元素,这也是Mike的信息显示不出来的核心原因 - 内层循环里输出的
$param和$value也对应错了,应该用你定义的$inner_param和$inner_value(或者换个更直观的变量名) - 你期望的是用
|分隔所有信息,但原代码用了<br>换行,不符合需求 - 数组初始化时额外定义
$persona_1、$persona_2其实没必要,直接写二维数组更简洁
下面是修正后的代码:
<?php $personas = array( array("Name" => "John", "Age" => 30, "Nationality" => "Spain"), array("Name" => "Mike", "Age" => 45, "Nationality" => "Peru"), ); // 先初始化一个字符串用来拼接结果 $result = ''; foreach ($personas as $persona ) { foreach ( $persona as $param => $value ) { // 把每个键值对按格式拼到结果里 $result .= "$param: $value | "; } }; // 可选:去掉末尾多余的空格和|,让输出更整洁 // $result = rtrim($result, ' | '); echo $result; ?>
运行这段代码后,就能得到你想要的输出:
Name: John | Age: 30 | Nationality: Spain | Name: Mike | Age: 45 | Nationality: Peru |
如果不想最后多一个|,可以启用代码里的rtrim语句,去掉末尾多余的分隔符。
内容的提问来源于stack exchange,提问作者gbl
相关产品推荐
相关产品推荐

