我尝试了多种方法将数组推入多维数组,包括array_push()
,$array['index'] = $toPush
,但是我一直遇到非常意外的结果。我已经使用var_dump()
和print_r()
进行了调试,但下面无法详述。
我的理由是运行while循环以提取游戏ID和游戏名称并将其存储在assoc中。阵列,然后将它们推入我的主阵列。
$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_to_add
内的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);
答案 0 :(得分:0)
您正在将array_push的返回值分配给游戏数组。
array_push
的返回值是推送后的元素数量。
只需将其用作
array_push($array, $newElement);
(未分配)
如果您一次只推送一个元素,则首选$array[] = $newElement
来防止array_push
函数调用的开销