添加2D数组键php

时间:2018-02-13 09:52:47

标签: php arrays

我尝试使用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" key不会出现在第二个和第三个数组中。

我不知道我的问题是否足够明确。问它是不是。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

尝试使用

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

使用密钥 看看这个Duplicate of this question