PHP关联数组foreach循环异常,数组创建正常但输出不符求助
问题排查与解决
嘿,我瞅了下你的代码——数组创建确实没问题,但foreach循环里的元素访问语法写错啦,这就是没法得到预期输出的原因!
错误根源分析
你写的$person=>["name"]是完全不符合PHP数组访问规则的错误语法:
=>是数组定义时用来关联键和值的操作符(比如"name" => "Brook"),不是用来访问已存在数组元素的方式。- 要访问关联数组的元素,正确写法是
$数组变量["键名"],也就是这里的$person["name"]和$person["age"]。
修正后的完整代码
<?php out("test starts"); $people[] = array ( "name" => "Brook", "age" => "42" ); $people[] = array ( "name" => "Peter", "age" => "18" ); // 修正foreach循环的元素访问逻辑 foreach($people as $person) { out($person["name"] . " - " . $person["age"]); } /* 现在会输出预期结果: Brook - 42 Peter - 18 */ var_dump($people); out("test ends"); function out($what) { echo $what . "<br>\n"; } ?>
额外小建议(可选优化)
- 可以用PHP短数组语法
[]替代array(),让代码更简洁:$people[] = ["name" => "Brook", "age" => "42"]; $people[] = ["name" => "Peter", "age" => "18"]; - 尽量统一使用小写的
<?php标签,虽然PHP对大小写不敏感,但这是行业更通用的规范写法。
现在运行修正后的代码,就能得到你想要的输出啦!
内容的提问来源于stack exchange,提问作者Mr. Brooks
相关产品推荐
相关产品推荐

