2 evshan evshan 于 2017.11.12 01:00 提问

php遍历取出其中一个值,代码如图,求怎么取,打印为null

$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);

4个回答

wgj200955
wgj200955   2017.11.12 01:25
已采纳

$arr2['c']=$v['b']['foat'];,第一次取值为“word”,第二次取值为NULL,覆盖第一次取值,所以输出为null。下面代码可以验证。

$arr2=[];
foreach ($arr1 as $v){
$arr2['c']=$v['b']['foat'];

var_dump($arr2);

}

evshan
evshan 回复wgj200955: 了解了,一时脑子卡壳了,加个判断就好了,感谢
10 天之前 回复
evshan
evshan   2017.11.12 01:03

最后一条的值能取出来,前边的就不行,是我语法有问题吗,引用符不行,也可能我用的不对,求解

bingo199
bingo199   2017.11.20 00:22

没毛病啊,第二个数组$arr1[1]没有foat这个键,所以会被赋值null
array(1) {
'c' =>
NULL
}

qq_32127845
qq_32127845   2017.11.21 11:40

$arr2[]=$v['b']['foat'];

Csdn user default icon
上传中...
上传图片
插入图片