如何在PHP中将多维数组展平(压缩)为一维数组?

如何在PHP中将多维数组展平(压缩)为一维数组?,php,arrays,multidimensional-array,type-conversion,associative-array,Php,Arrays,Multidimensional Array,Type Conversion,Associative Array,我得到了这个数组。我希望所有其他3个数组都进入这个[0]=>数组。不需要唯一值,只需将所有数组平面合并到[0]=>数组中即可 Array ( [0] => Array ( [0] => Array ( [Campaign] => xxx [Phone] => 111 [State] => cd

我得到了这个数组。我希望所有其他3个数组都进入这个[0]=>数组。不需要唯一值,只需将所有数组平面合并到[0]=>数组中即可

Array
 (
  [0] => Array
    (
        [0] => Array
            (
                [Campaign] => xxx
                [Phone] => 111
                [State] => cd
            )

         )

 [1] => Array
    (
        [0] => Array
            (
                [Campaign] => zxxxzx
                [Phone] => 111111
                [State] => zxxx
            )

         )

  [2] => Array
    (
        [0] => Array
            (
                [Campaign] => aaaa
                [Phone] => 111
                [State] => Csd
            )

        )

  [3] => Array
    (
        [0] => Array
            (
                [Campaign] => sasa
                [Phone] => 111
                [State] => asas
            )

          )
)

这是另一个说明命名是多么重要的例子。您正在使用的基本上是:

$recordsGroups = array(
    // first group:
    array(
        // record 1:
        array(
            'key1' => 'val1',
            'key2' => 'val2',
        ),
        // record 2:
        array(
            'key1' => 'aaa',
            'key2' => 'bbb',
        ),
    ),
    // 2nd group:
    array(
        // record 3:
        array(
            'key1' => 'ccc',
            'key2' => 'ddd',
        ),
    ),
);
你可能想做的是:

$records = array();
foreach ($recordsGroups as $group)
    foreach ($group as $record)
        $records[] = $record;
这将给你:

$records = array(
    // record 1:
    array(
        'key1' => 'val1',
        'key2' => 'val2',
    ),
    // record 2:
    array(
        'key1' => 'aaa',
        'key2' => 'bbb',
    ),
    // record 3:
    array(
        'key1' => 'ccc',
        'key2' => 'ddd',
    ),
);
这应该很好:

$array = call_user_func_array('array_merge', $array);
或(splat操作员):


因为数组不能有重复的关键点,所以这个多维数组可以压缩的最好方法是使用关联数组的索引数组
array\u column()
将快速完成此任务

代码:()

输出:

array (
  0 => 
  array (
    'Campaign' => 'xxx',
    'Phone' => '111',
    'State' => 'cd',
  ),
  1 => 
  array (
    'Campaign' => 'zxxxzx',
    'Phone' => '111111',
    'State' => 'zxxx',
  ),
  2 => 
  array (
    'Campaign' => 'aaaa',
    'Phone' => '111',
    'State' => 'Csd',
  ),
  3 => 
  array (
    'Campaign' => 'sasa',
    'Phone' => '111',
    'State' => 'asas',
  ),
)

生成的数组应该是什么样的?
$array=[
    [
        ['Campaign'=>'xxx','Phone'=>'111','State'=>'cd']
    ],
    [
        ['Campaign'=>'zxxxzx','Phone'=>'111111','State'=>'zxxx']
    ],
    [
        ['Campaign'=>'aaaa','Phone'=>'111','State'=>'Csd']
    ],
    [
        ['Campaign'=>'sasa','Phone'=>'111','State'=>'asas']
    ]
];

var_export(array_column($array,0));
array (
  0 => 
  array (
    'Campaign' => 'xxx',
    'Phone' => '111',
    'State' => 'cd',
  ),
  1 => 
  array (
    'Campaign' => 'zxxxzx',
    'Phone' => '111111',
    'State' => 'zxxx',
  ),
  2 => 
  array (
    'Campaign' => 'aaaa',
    'Phone' => '111',
    'State' => 'Csd',
  ),
  3 => 
  array (
    'Campaign' => 'sasa',
    'Phone' => '111',
    'State' => 'asas',
  ),
)