Search code examples
phparraysloopsarray-push

array_push not working in foreach loop


print_r($members) coming like this following result

Array ( [myname] => Array ( [userid] => 52 [age] => 46 )
Array ( [hisname] => Array ( [userid] => 22 [age] => 47 )
Array ( [yourname] => Array ( [userid] => 47 [age] => 85 )

array_push() push not working in the foreach loop

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

The result expecting like this following code with the array_push()

Array ( [myname] => Array ( [userid] => 52 [age] => 46 [0] => myname)
Array ( [hisname] => Array ( [userid] => 22 [age] => 47 [0] => hisname)
Array ( [yourname] => Array ( [userid] => 47 [age] => 85 [0] => yourname)

result

Warning: array_push() expects parameter 1 to be array, null given in C:\xampp\htdocs\index.php on line 126

Warning: array_push() expects parameter 1 to be array, null given in C:\xampp\htdocs\index.php on line 126

Warning: array_push() expects parameter 1 to be array, null given in C:\xampp\htdocs\index.php on line 126


Solution

  • Because $arr does not seems to be an array. Change your code to,

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