将数组推入多维数组(php)

时间:2018-11-02 20:33:46

标签: php arrays multidimensional-array

我尝试了多种方法将数组推入多维数组,包括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);

1 个答案:

答案 0 :(得分:0)

您正在将array_push的返回值分配给游戏数组。 array_push的返回值是推送后的元素数量。

只需将其用作

array_push($array, $newElement);

(未分配)

如果您一次只推送一个元素,则首选$array[] = $newElement来防止array_push函数调用的开销