我尝试使用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)
使用钥匙查看此问题的重复