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)
您可以使用以下方法:
$newArray = array();
foreach($arrayData as $key => $value) {
foreach($value as $key2 => $value2) {
$newArray[$key2] = $value2;
}
}
Run Code Online (Sandbox Code Playgroud)
其中$ arrayData是您的数据库数据数组,而$ newArray将是结果。
假设源数组是数组数组并且它没有相同的键:
<?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)