<?php$a = array(4=>array('Id'=>4, 'data'=>array('111', '222')));foreach ($a as &$value){
foreach ($value['data'] as &$val){
$val['Id'] = 4;
}
$value['name'] = 'haha';
}//var_dump($a);
foreach ($a as $value){
var_dump($value);
}二维数组,用了两个引用。但发现最后的结果不是想要的。
大家能解释一下吗?
foreach ($value['data'] as &$val){
$val['Id'] = 4;
}
$value['name'] = 'haha';
}//var_dump($a);
foreach ($a as $value){
var_dump($value);
}二维数组,用了两个引用。但发现最后的结果不是想要的。
大家能解释一下吗?
很郁闷 我以为会添加元素 没想到啊没想到 居然是很怪异的赋值 php底层做了啥啊
上面的代码只不过错误地对字符串用数组方式并用非数字的index赋值了而已试试这个就行了:$x='abcde';
$x['bbb']=1;
echo $x;这样是比较自然的方式:
$x='abcde';
$x[3]=1;
echo $x;
的确 原题就算写成$val['abcd']=4 也是一样的结果
<?php
$a = array(4=>array('Id'=>4, 'data'=>array('111','222')));foreach ($a as &$value){
$value['data']['Id'] = 4;
$value['name'] = 'haha';
}//var_dump($a);
foreach ($a as $value){
var_dump($value);
}
?>
<?php
$a = array(4=>array('Id'=>4, 'data'=>array('111', '222')));foreach ($a as &$value){
foreach ($value['data'] as &$val){
$val = array('Id' => 4,'Val' => $val);
}
$value['name'] = 'haha';
}
var_dump($a);
?>