Php 数组\u推送在foreach循环中不工作

Php 数组\u推送在foreach循环中不工作,php,arrays,loops,array-push,Php,Arrays,Loops,Array Push,打印($members)结果如下 Array ( [myname] => Array ( [userid] => 52 [age] => 46 ) Array ( [hisname] => Array ( [userid] => 22 [age] => 47 ) Array ( [yourname] => Array ( [userid] => 47 [age] => 85 ) array\u push()push在foreach循环中不工

打印($members)
结果如下

Array ( [myname] => Array ( [userid] => 52 [age] => 46 )
Array ( [hisname] => Array ( [userid] => 22 [age] => 47 )
Array ( [yourname] => Array ( [userid] => 47 [age] => 85 )
array\u push()
push在
foreach
循环中不工作

foreach($members as $key => $item){
  // print "<br>" . $key ."<br>";
  array_push($members, '$key');
}
结果

警告:array_push()要求参数1为array,在第126行的C:\xampp\htdocs\index.php中给出空值

警告:array_push()要求参数1为array,在第126行的C:\xampp\htdocs\index.php中给出空值


警告:array_push()要求参数1为数组,在第126行的C:\xampp\htdocs\index.php中给出null,因为
$arr
似乎不是数组。将代码更改为

foreach($members as $key => $item){
   array_push($members[$key], $key); //or $members[$key][] = $key;
}

输出结果是什么?Ans您的foreach中的
$arr
是什么?@Gwenc37请检查更新的问题,警告是因为您没有将
$arr
初始化为(空)数组。将其置于循环之前:
$arr=[]。不知道为什么在所有迭代中都会发生这种情况……哦,还有:
'$key'
将文本字符串“$key”推到数组中,而不是该变量的内容。现在您已经更改了问题中的代码,并且似乎正在将数据推到您正在迭代的同一数组中。这似乎是个坏主意。
foreach($members as $key => $item){
   array_push($members[$key], $key); //or $members[$key][] = $key;
}