我是php的新手,我不确定为什么这不起作用。有人能帮助我吗?谢谢!我的代码如下:
if (!$this->_in_multinested_array($over_time, $request_year)) {
$temp = array('name'=>$request_year, 'children'=>array());
array_push($over_time, $temp);
}
if (!$this->_in_multinested_array($over_time, $request_month)) {
$child = array('name'=>$request_month, 'children'=>array());
foreach ($over_time as $temp) {
if ($temp['name'] == $request_year) {
array_push($temp['children'], $child);
}
}
}
每当我检查此代码的结果时,temp['children']
数组总是为空,即使它不应该是。
答案 0 :(得分:2)
此循环中的每个$ temp都是副本:
foreach ($over_time as $temp) {
if ($temp['name'] == $request_year) {
array_push($temp['children'], $child);
}
}
您想要更改数组而不是制作副本,因此您必须使用引用:
foreach ($over_time as &$temp) {
if ($temp['name'] == $request_year) {
array_push($temp['children'], $child);
}
}