$arr1=[
0=>[
'a'=>'abc',
'b'=>['foat'=>'word','aet'=>'hello']
],
1=>[
'a'=>'def',
'b'=>['alt'=>'pass',
'top'=>'dds'
]
]
];
$arr2=[];
foreach ($arr1 as $v){
$arr2['c']=$v['b']['foat'];
}
var_dump($arr2);
$arr2['c']=$v['b']['foat'];,第一次取值为“word”,第二次取值为NULL,覆盖第一次取值,所以输出为null。下面代码可以验证。
$arr2=[];
foreach ($arr1 as $v){
$arr2['c']=$v['b']['foat'];
var_dump($arr2);
}
最后一条的值能取出来,前边的就不行,是我语法有问题吗,引用符不行,也可能我用的不对,求解
没毛病啊,第二个数组$arr1[1]没有foat这个键,所以会被赋值null
array(1) {
'c' =>
NULL
}
$arr2[]=$v['b']['foat'];