第1个回答 2012-05-24
你替换的是$cc的值,并没有替换$arr的值,所以还是原来的值没变
你可以把他存放到另一个数组里面显示,或者在操作完后再把$arr覆盖掉
$arr = array(1=>array('id'=>1,'pass'=>'1'),'2'=>array('id'=>2,'pass'=>2));
$row = array(1=>'abc',2=>'def');
$arr_set=array();
foreach($arr as $cc){
$id = $row[$cc['pass']];
$cc['pass'] = $id;
$arr_set[]=$cc;
}
print_r($arr_set);
第2个回答 2012-05-24
首先说明一点foreach($arr as $cc)后$cc与$arr是两个不同的数组。$arr不会随$cc的值改变而改变。所以你打印出来的$arr的值不变。我帮你修改了。
$arr = array(1=>array('id'=>1,'pass'=>'1'),'2'=>array('id'=>2,'pass'=>2));
$row = array(1=>'abc',2=>'def');
foreach($arr as $key=> $cc){
$id = $row[$cc['pass']];
$arr[$key]['pass'] = $id; //替换pass的值
}
print_r($arr);
第3个回答 2012-05-24
foreach出来的$cc是一个副本,改变这个$arr不会有任何影响。使用引用就行了。
foreach($arr as &$cc){