添加2D数组密钥php



我尝试使用foreach添加一个键及其在2D数组中。问题在于此密钥没有"保存"。一旦我尝试查看第一个数组,我添加的钥匙就消失了。

有代码:

    $Etapes=$this::getEtapes();
    foreach($Etapes as $Etape){
        $req = $this::getSuiviEtapes();
        $Etape['Nom_Suivi'] = $req[0]['Nom_Suivi'];
        if($Etape['ID_Etat_Etape']=="22")
        {
            var_dump($Etape);
            var_dump($Etapes);
            $this->Etapes=$Etapes;
            var_dump($this->Etapes);
        }
    }

和返回

array(3) {
  ["ID_Etat_Etape"]=>
  string(2) "22"
  ["Nom"]=>
  string(36) "Comparatif"
  ["Nom_Suivi"]=>
  string(8) "En_cours"
}
array(2) {
  [0]=>
  array(2) {
    ["ID_Etat_Etape"]=>
    string(2) "21"
    ["Nom"]=>
    string(12) "Etude"
  }
  [1]=>
  array(2) {
    ["ID_Etat_Etape"]=>
    string(2) "22"
    ["Nom"]=>
    string(36) "Comparatif"
  }
}
array(2) {
  [0]=>
  array(2) {
    ["ID_Etat_Etape"]=>
    string(2) "21"
    ["Nom"]=>
    string(12) "Etude"
  }
  [1]=>
  array(2) {
    ["ID_Etat_Etape"]=>
    string(2) "22"
    ["Nom"]=>
    string(36) "Comparatif"
  }
}

如您所见," nom_suivi"键不会出现在第二和第三个数组中。

我不知道我的问题是否足够清楚。询问是否不是。谢谢您的帮助。

如果要修改数组,则与foreach进行迭代,要么必须使用参考-foreach($Etapes as &$Etape)或(优选的方式(通过使用原始数组变量和键来更改值:

foreach($Etapes as $key => $Etape){
    ...
    $Etapes[$key]['Nom_Suivi'] = $req[0]['Nom_Suivi'];
    ...
}

尝试使用

foreach ($fields as $key => $field)

使用钥匙查看此问题的重复

最新更新