Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 合并子阵列以形成已删除第一级的索引数组_Php_Arrays_Multidimensional Array_Array Merge - Fatal编程技术网

Php 合并子阵列以形成已删除第一级的索引数组

Php 合并子阵列以形成已删除第一级的索引数组,php,arrays,multidimensional-array,array-merge,Php,Arrays,Multidimensional Array,Array Merge,我有个问题。也许解决起来很简单 有一个数组如下所示: (int) 0 => array( (int) 0 => array( 'Post' => array( 'name' => 'value' ) ) ), (int) 1 => array( (int) 0 => array( 'Post' => array( 'name' =>

我有个问题。也许解决起来很简单

有一个数组如下所示:

(int) 0 => array(
    (int) 0 => array(
        'Post' => array(
            'name' => 'value'
        )
    )
),
(int) 1 => array(
    (int) 0 => array(
        'Post' => array(
            'name' => 'value'
        )
    ),
    (int) 1 => array(
        'Post' => array(
            'name' => 'value'
        )
    )
)
(int) 0 => array(
        'Post' => array(
            'name' => 'value'
        )
    )
(int) 1 => array(
        'Post' => array(
            'name' => 'value'
        )
    )
(int) 2 => array(
        'Post' => array(
            'name' => 'value'
        )
    )
这需要如下所示:

(int) 0 => array(
    (int) 0 => array(
        'Post' => array(
            'name' => 'value'
        )
    )
),
(int) 1 => array(
    (int) 0 => array(
        'Post' => array(
            'name' => 'value'
        )
    ),
    (int) 1 => array(
        'Post' => array(
            'name' => 'value'
        )
    )
)
(int) 0 => array(
        'Post' => array(
            'name' => 'value'
        )
    )
(int) 1 => array(
        'Post' => array(
            'name' => 'value'
        )
    )
(int) 2 => array(
        'Post' => array(
            'name' => 'value'
        )
    )
我尝试了
array\u shift()
,然后直接尝试了
array\u values()
,但这只给了我第一篇帖子


我假设顺序是“0,0,1”,所以PHP在第一个之后将其剪切。

这就是我尝试过的

$array = call_user_func_array('array_merge', $array);
      <?php
              $test = array(
                              array(array('post'=>array('name','value'))),
                              array(array('post'=>array('name','value')),array('post'=>array('name','value')),),
                           );
              print_r($test);


              $test_arr = array();

              foreach($test as $value)
              {
                 foreach($value as $subvalue)
                 {
                    $test_arr[] = $subvalue; 
                 }
              }

              print_r($test_arr);
              ?> 

这就是我尝试过的

      <?php
              $test = array(
                              array(array('post'=>array('name','value'))),
                              array(array('post'=>array('name','value')),array('post'=>array('name','value')),),
                           );
              print_r($test);


              $test_arr = array();

              foreach($test as $value)
              {
                 foreach($value as $subvalue)
                 {
                    $test_arr[] = $subvalue; 
                 }
              }

              print_r($test_arr);
              ?> 



为什么要使用call\u user\u func\u array()而不仅仅是array\u merge()?这基本上是为
$array=array\u merge($array[0],$array[1],…)
中任意数量的元素执行的。哇,真是天才!当给定任意深度时,该数组中的0到n个帖子是否灵活?嗯,似乎是这样:)@Karl它基本上从像您这样的数据结构中删除了第一级数组。它不会合并任意深度的数组(好吧,数组可以任意深度,它不会影响结果)
$array
应该至少包含一个元素,否则
array\u merge
会抱怨。很好的解决方案,利用了array\u merge接受可变列表数组参数的事实。为什么要使用call\u user\u func\u array()而不仅仅是array\u merge()?这实际上是
$array=array\u merge($array[0],$array[1],…)
用于
$array
中任意数量的元素。哇,真是天才!当给定任意深度时,该数组中的0到n个帖子是否灵活?嗯,似乎是这样:)@Karl它基本上从像您这样的数据结构中删除了第一级数组。它不会合并任意深度的数组(好吧,数组可以任意深度,它不会影响结果)
$array
应至少包含一个元素,否则
array\u merge
会抱怨。很好的解决方案,利用了array\u merge接受变量列表数组参数这一事实。您应该澄清您的数组是否希望始终保持此结构,或者,如果预计阵列的元素数或每个阵列的深度将发生变化。这是一个非常简单但严格的解决方案与一个稍微复杂但灵活的解决方案之间的区别。是的,它需要非常灵活。Decezes在下面的回答非常优雅。无论如何,很明显,您需要在阵列数量(或原始阵列大小)上具有灵活性,但在阵列深度上不需要灵活性。我喜欢同样的答案。演示@Deceze的答案和来自dupe的另一种技术:(此页面不会为SO添加新值,可以安全地删除。)您应该澄清您的数组是否希望始终保持此结构,或者数组的元素数或每个数组的深度是否会发生变化。这是一个非常简单但严格的解决方案与一个稍微复杂但灵活的解决方案之间的区别。是的,它需要非常灵活。Decezes在下面的回答非常优雅。无论如何,很明显,您需要在阵列数量(或原始阵列大小)上具有灵活性,但在阵列深度上不需要灵活性。我喜欢同样的答案。演示@Deceze的答案和来自dupe的另一种技巧:(此页面没有添加任何新值,可以安全地删除。)请在这里发布代码;这个答案需要自己有用,而不是依赖其他地方的信息。@deceze我已经编辑了答案。。谢谢你的建议,请在这里张贴代码;这个答案需要自己有用,而不是依赖其他地方的信息。@deceze我已经编辑了答案。。谢谢你的建议