如何用PHP根据二维数组键值下标生成新的数组?
时间:2025-1-8 08:18 作者:emer 分类: 无

按 key 下标循环生成新数组
你有二维数组,需要通过 key 的下标来循环并组成一个新的数组。例如,你希望将以下数组:
[
1 => [
0 => '测试-2票',
1 => '小白-2票',
2 => '张张-2票'
],
2 => [
0 => '颜夕-2票',
1 => '小黑-2票',
2 => '小黄-2票'
],
3 => [
0 => '小绿-2票'
]
] 登录后复制
转换为:
[ [ '测试-2票', '颜夕-2票' ], [ '小白-2票', '小黑-2票' ], [ '张张-2票', '小黄-2票', '小绿-2票' ] ]登录后复制
实现方法
立即学习“”;
借助 php 自带的 array_map 函数,你可以轻松实现这个功能:
$arr = [
1 => [
0 => '测试-2票',
1 => '小白-2票',
2 => '张张-2票'
],
2 => [
0 => '颜夕-2票',
1 => '小黑-2票',
2 => '小黄-2票'
],
3 => [
0 => '小绿-2票'
]
];
$result = array_map(function (...$list) {
return $list;
}, ...$arr);
var_dump($result); 登录后复制
输出结果:
array(3) {
[0] => array(2) {
[0] => string(18) "测试-2票"
[1] => string(18) "颜夕-2票"
}
[1] => array(2) {
[0] => string(18) "小白-2票"
[1] => string(18) "小黑-2票"
}
[2] => array(3) {
[0] => string(18) "张张-2票"
[1] => string(18) "小黄-2票"
[2] => string(18) "小绿-2票"
}
} 登录后复制
由此可见,新的数组已按 key 的下标进行了循环生成。
在 php 7.4 及以上版本中,你可以使用更简便的箭头函数语法:
$result = array_map(fn(...$i) => $i, ...$arr); var_dump($result);登录后复制
以上就是如何用PHP根据二维数组键值下标生成新的数组?的详细内容,