将数组推入多维数组(php)
我尝试了许多不同的方法将数组推入多维数组,包括将数组推入多维数组(php),php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我尝试了许多不同的方法将数组推入多维数组,包括array\u push(),$array['index']=$toPush,但我总是遇到意想不到的结果。我使用了var_dump()和print_r()尝试调试,但无法解决问题 我的推理是运行while循环来提取游戏id和游戏名称,并将它们存储在一个关联数组中,然后将它们推送到我的主数组中 $games_array = array ( "games" => array ( array("id"=&g
array\u push()
,$array['index']=$toPush
,但我总是遇到意想不到的结果。我使用了var_dump()
和print_r()
尝试调试,但无法解决问题
我的推理是运行while循环来提取游戏id和游戏名称,并将它们存储在一个关联数组中,然后将它们推送到我的主数组中
$games_array = array
(
"games" => array
(
array("id"=>"1", "game"=>"first game");
array("id"=>"2", "game"=>"second game");
)
);
// a while loop would run here and update $game_to_add;
$game_to_add = array("id"=>"$game['id']", "game"=>"$game['title']");
$games_array = array_push($games_array['games'], $game_to_add);
在本例中,while()
将更新$Game\u中的ID和游戏,以添加
但是,每当我尝试这样做时,它只会覆盖数组并输出一个整数(例如:int(3)
)
我不明白问题是什么,任何解释都将不胜感激,因为我找不到一个专门针对这个问题的问题
我的实际测试代码:
$games_array = array( "games" => array(
array("id" => "1", "name" => "Star feathers"),
array("id" => "2", "name" => "chung fu")
)
);
$another_game = array("id" => "3", "name" => "some kunt");
$games_array = array_push($games_array["games"], array("id" => "3", "name"
=>"some game"));
var_dump($games_array);
您正在将array_push的返回值分配给games数组。
array\u push的返回值是推后的元素数
就当它是
array_push($array, $newElement);
(无转让)
如果一次只推送一个元素,则首选$array[]=$newElement
,以防止array\u push
函数调用的开销在数组推送()之前清除$games\u array
赋值。它在适当的位置修改数组,它不会返回它。我不敢相信我没有注意到这一点。我在商店里到处使用了Array\u push()
,我想我离树林太近了,看不见树木。非常感谢。我建议您摆脱使用array\u push
的习惯,使用速记$arrayname[]=$new\u值代码>例如,$games\u数组[“games”][]=$另一个游戏代码>