转换看起来像这样的数组的好方法是什么:
Array (
[0] = Array (
[0] = Array (
[key] = val
[key2] = val2
)
)
[1] = Array (
[0] = Array (
[key] = val
[key2] = val2
)
)
)
到
Array (
[0] = Array (
[key] = val
[key] = val2
)
[1] = Array (
[key] = val
[key] = val2
)
)
答案 0 :(得分:5)
这可能是一种相当简洁的方式
$output=array_map('array_shift', $input);
这使用array_map在输入数组的每个元素上调用array_shift,这将为您提供每个子数组的第一个元素!漂亮的小单行,没有?
很好,它并不是非常有效,因为array_shift比我们需要的工作更多 - 一个简单的循环实际上要快得多(我只是在一个包含1000个元素的数组上做了快速基准测试,这大约快了6倍)
$output=array();
foreach ($input as $element){
$output[]=$element[0];
}
答案 1 :(得分:1)
$new=array();
foreach($array as $a){
$new[]=array_shift($a);
}
答案 2 :(得分:0)
$new=array();
foreach ($array as $a){
$new[]=$a[0];
}
print_r($new);
答案 3 :(得分:0)
如果您的数组是$my_array
且有2个元素,您可以:
$my_array = array_merge($my_array[0], $my_array[1]);
希望有所帮助。
答案 4 :(得分:0)
我想大家都在想这个。这正是array_column()
所做的。
代码:(Demo)
$array=[
[
['key'=>'val','key2'=>'val2']
],
[
['key'=>'val','key2'=>'val2']
]
];
var_export(array_column($array,0));
输出:
array (
0 =>
array (
'key' => 'val',
'key2' => 'val2',
),
1 =>
array (
'key' => 'val',
'key2' => 'val2',
),
)