我有一个多维关联数组,我使用两个foreach对其进行迭代,我需要更改原始数组的值,这里是我的代码的表示形式,以及我尝试过的内容:
$array = [
['id' => 1, 'customers' => [['customerName' => 'Daniel', 'age' => 20, 'isYoung' => false], ['customerName' => 'Patrick', 'age' => 56, 'isYoung' => false]]],
['id' => 4, 'customers' => [['customerName' => 'Paul', 'age' => 41, 'isYoung' => false]]]
];
foreach($array as $key => $value) {
foreach($value['customers'] as $sKey => $sValue {
if($sValue['age'] < 35) {
$array[$key]['customers'][$sKey]['isYoung'] = true; //Doesnt Work
$value['customers'][$sKey]['isYoung'] = true; //Doesnt Work
}
}
}
有线索吗?
答案 0 :(得分:1)
第一个作业对我有用。但是您可以通过将引用变量用作迭代变量来简化它。
foreach($array as &$value) {
foreach($value['customers'] as &$sValue) {
if($sValue['age'] < 35) {
$sValue['isYoung'] = true;
}
}
}