推送完整数组而不仅仅是单个元素

时间:2015-04-27 10:28:46

标签: php arrays

我在循环中创建了一个名为$this_image的数组。在循环结束时,我希望将数组添加到更大的数组中。

$this_image看起来像这样:

array(1) {
  [2161]=>
  array(3) {
    ["description"]=>
    string(10) "Description goes here"
    ["medium"]=>
    string(102) "http://localhost/new/wp-content/uploads/2015/04/57898d673ae1f7482d04ab1c3de60363-300x300.jpg"
    ["full"]=>
    string(94) "http://localhost/new/wp-content/uploads/2015/04/57898d673ae1f7482d04ab1c3de60363.jpg"
  }
}

我现在希望将此数组添加到更全局的数组$all_images中。结果将是这样的:

$all_images =

array(2) {
      [2161]=>
      array(3) {
        ["description"]=>
        string(10) "Description goes here"
        ["medium"]=>
        string(102) "http://localhost/new/wp-content/uploads/2015/04/57898d673ae1f7482d04ab1c3de60363-300x300.jpg"
        ["full"]=>
        string(94) "http://localhost/new/wp-content/uploads/2015/04/57898d673ae1f7482d04ab1c3de60363.jpg"
      }
      [2162]=>
      array(3) {
        ["description"]=>
        string(10) "Another description goes here"
        ["medium"]=>
        string(102) "http://localhost/new/wp-content/uploads/2015/04/57898d673ae1f7482d04ab1c3de60363-300x300.jpg"
        ["full"]=>
        string(94) "http://localhost/new/wp-content/uploads/2015/04/57898d673ae1f7482d04ab1c3de60363.jpg"
      }
      ...
    }

我该怎么做?我尝试过使用array_push,但我发现我无法推送数组,只能推送一个字符串/ int等。如何将新数组添加到现有数组?

之前提出的问题演示了如何使用多个元素项初始化新数组,而不是如何将数组推送到现有数组中。

2 个答案:

答案 0 :(得分:3)

使用array_merge。试试 -

$all_images = array_merge($all_images, $this_image);

或者Rizier123解决方案($all_images[] = $this_image;)也可以使用。

或者你也可以这样做 -

$all_images += $this_image; // will preserve the keys on top level also

答案 1 :(得分:0)

一个简单的例子来证明:

Gemfile

~`