PHP-嵌套的Foreach更改原始数组值

时间:2020-09-01 05:45:10

标签: php arrays foreach nested-loops

我有一个多维关联数组,我使用两个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
    }
  }
}

有线索吗?

1 个答案:

答案 0 :(得分:1)

第一个作业对我有用。但是您可以通过将引用变量用作迭代变量来简化它。

foreach($array as &$value) {
  foreach($value['customers'] as &$sValue) {
    if($sValue['age'] < 35) {
      $sValue['isYoung'] = true;
    }
  }
}