在php中转换2d数组?
我需要一个函数,用于将二维数组从:在php中转换2d数组?,php,arrays,sorting,Php,Arrays,Sorting,我需要一个函数,用于将二维数组从: 1 4 2 5 3 6 到 我的第一种方法是用 array_unshift($data, null); call_user_func_array('array_map', $data); 但现在我明白了: 1 5 2 6 3 4 有人能帮忙吗 编辑: 好的,让我更清楚地说,我有这些类别,我需要以这种方式对它们重新排序 Array ( [0] => Array ( [0] => Das ist l
1 4
2 5
3 6
到
我的第一种方法是用
array_unshift($data, null);
call_user_func_array('array_map', $data);
但现在我明白了:
1 5
2 6
3
4
有人能帮忙吗
编辑:
好的,让我更清楚地说,我有这些类别,我需要以这种方式对它们重新排序
Array
(
[0] => Array
(
[0] => Das ist los
[1] => Land & Leute
[2] => Wirtschaft & Politik
[3] => Leben
[4] => Kultur
)
[1] => Array
(
[0] => Chronik
[1] => Motor
[2] => Sport
[3] => Blaulicht
[4] => Schauplatz
)
)
我需要:
Array
(
[0] => Array
(
[0] => Das ist los
[1] => Wirtschaft & Politik
[2] => Kultur
[3] => Motor
[4] => Blaulicht
)
[1] => Array
(
[0] => Land & Leute
[1] => Leben
[2] => Chronik
[3] => Sport
[4] => Schauplatz
)
)
对于简单的2列数组:
$myArray = [
[1,4],
[2,5],
[3,6],
];
$myNewArray = array_chunk(
array_merge(
array_column($myArray, 0),
array_column($myArray, 1)
),
2
);
var_dump($myNewArray);
编辑
对于更通用的解决方案:
$myArray = [
[1,6,11],
[2,7,12],
[3,8,13],
[4,9,14],
[5,10,15],
];
$columns = count($myArray[0]);
$tmpArray = [];
for($i = 0; $i < $columns; ++$i) {
$tmpArray = array_merge(
$tmpArray,
array_column($myArray, $i)
);
}
$myNewArray = array_chunk(
$tmpArray,
$columns
);
var_dump($myNewArray);
$myArray=[
[1,6,11],
[2,7,12],
[3,8,13],
[4,9,14],
[5,10,15],
];
$columns=count($myArray[0]);
$tmpArray=[];
对于($i=0;$i<$columns;++$i){
$tmpArray=array\u merge(
$tmpArray,
数组\列($myArray,$i)
);
}
$myNewArray=array\u块(
$tmpArray,
$columns
);
变量转储($myNewArray);
我们可以使用合适的变量转储($array)
?首先感谢您的帮助。我补充了一些细节。我的数组更像[[1,2,3],[4,5,6],我需要转换为[[1,3,5][2,4,6]]
$myArray = [
[1,6,11],
[2,7,12],
[3,8,13],
[4,9,14],
[5,10,15],
];
$columns = count($myArray[0]);
$tmpArray = [];
for($i = 0; $i < $columns; ++$i) {
$tmpArray = array_merge(
$tmpArray,
array_column($myArray, $i)
);
}
$myNewArray = array_chunk(
$tmpArray,
$columns
);
var_dump($myNewArray);