You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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";
}
?>

额外小建议(可选优化)

  1. 可以用PHP短数组语法[]替代array(),让代码更简洁:
    $people[] = ["name" => "Brook", "age" => "42"];
    $people[] = ["name" => "Peter", "age" => "18"];
    
  2. 尽量统一使用小写的<?php标签,虽然PHP对大小写不敏感,但这是行业更通用的规范写法。

现在运行修正后的代码,就能得到你想要的输出啦!

内容的提问来源于stack exchange,提问作者Mr. Brooks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:25:22