我有一个看起来像......
的数组$arr = array(
array(
"server_name" => "server_a",
"server_number" => "1",
"server_status" => "OPEN"
),
array(
"server_name" => "server_b",
"server_number" => "2",
"server_status" => "CLOSED"
)
);
我试图以下列方式设置“server_status”的索引值
foreach($arr as $a){
$a['server_status'] = "STATUS_".$a['server_status'];
}
这似乎不是设置数组值的正确方法,因为似乎没有发生任何事情,执行此任务的正确方法是什么?
答案 0 :(得分:1)
您需要通过引用来预告,例如:
foreach($arr as &$a){
$a['server_status'] = "STATUS_".$a['server_status'];
}
否则它不会修改当前迭代的项目 - 它是一个副本。
答案 1 :(得分:1)
您需要通过引用进行迭代:
foreach($arr as &$a) {
$a['server_status'] = ...;
}
(与您的代码的唯一区别是foreach中$ a之前的&
。)
迭代后不要忘记取消设置引用:
unset($a);
否则,稍后在代码中写入此变量将覆盖数组的最后一个元素。
请参阅foreach
文档。