如何使用PHP将多维数组转换为单个数组?

Kar*_*ari 13 php arrays multidimensional-array array-reduce

实现数据库查询后,我将获得下面的多维数组.

二维数组

Array
(
    [0] => Array
        (
            [t1] => test1
        )

    [1] => Array
        (
            [t2] => test2
        )

    [2] => Array
        (
            [t3] => test3
        )

    [3] => Array
        (
            [t4] => test4
        )

    [4] => Array
        (
            [t5] => test5
        )

)
Run Code Online (Sandbox Code Playgroud)

但我想将其转换为单维数组,如下面的格式.

一维数组

Array (
    t1 => test1
    t2 => test2
    t3 => test3
    t4 => test4
    t5 => test5
)
Run Code Online (Sandbox Code Playgroud)

请帮我这样做

小智 8

我想你可以使用array_reduce()函数.例如:

   $multi= array(0 => array('t1' => 'test1'),1 => array('t2' => 'test2'),2 => array('t3' => 'test3'),3 => array('t4' => 'test4'));
   $single= array_reduce($multi, 'array_merge', array());
   print_r($single);  //Outputs the reduced aray
Run Code Online (Sandbox Code Playgroud)


Sun*_*rma 5

您可以使用以下方法:

$newArray = array();
foreach($arrayData as $key => $value) {
    foreach($value as $key2 => $value2) {
        $newArray[$key2] = $value2;
    }
}
Run Code Online (Sandbox Code Playgroud)

其中$ arrayData是您的数据库数据数组,而$ newArray将是结果。


Wiz*_*ard 5

假设源数组是数组数组并且它没有相同的键:

<?php
$src = [
    ['t1'=>'test1'],
    ['t2'=>'test2'],
    ['t3'=>'test3'],
    ['t4'=>'test4'],
    ['t5'=>'test5'],
];
$result = call_user_func_array('array_merge', $src);
Run Code Online (Sandbox Code Playgroud)

通过 var_dump() 结果:

array(5) {
  ["t1"]=>
  string(5) "test1"
  ["t2"]=>
  string(5) "test2"
  ["t3"]=>
  string(5) "test3"
  ["t4"]=>
  string(5) "test4"
  ["t5"]=>
  string(5) "test5"
}
Run Code Online (Sandbox Code Playgroud)