如何解决局部展平多维数组
什么是转换看起来像这样的数组的好方法: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
)
)
解决方法
这可能是一种相当整齐的方法
$output=array_map(\'array_shift\',$input);
这使用array_map在输入数组的每个元素上调用array_shift,这将为您提供每个子数组的第一个元素!不错的一线小,不是吗?
不错,因为array_shift的工作量超出了我们的需要,所以效率不是很高-一个简单的循环实际上要快得多(我只是对具有1000个元素的数组进行了快速基准测试,这快了大约6倍)
$output=array();
foreach ($input as $element){
$output[]=$element[0];
}
, $new=array();
foreach($array as $a){
$new[]=array_shift($a);
}
, 如果您的数组是$my_array
并且有2个元素,则可以:
$my_array = array_merge($my_array[0],$my_array[1]);
希望能有所帮助。
, $new=array();
foreach ($array as $a){
$new[]=$a[0];
}
print_r($new);
, 我想每个人都想过这一点。这正是array_column()
所做的。
代码:(演示)
$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\',)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。