如何在 PHP 中翻转 90 度(转置)多维数组?例如:
// Start with this array
$foo = array(
'a' => array(
1 => 'a1',
2 => 'a2',
3 => 'a3'
),
'b' => array(
1 => 'b1',
2 => 'b2',
3 => 'b3'
),
'c' => array(
1 => 'c1',
2 => 'c2',
3 => 'c3'
)
);
$bar = flipDiagonally($foo); // Mystery function
var_dump($bar[2]);
// Desired output:
array(3) {
["a"]=>
string(2) "a2"
["b"]=>
string(2) "b2"
["c"]=>
string(2) "c2"
}
您将如何实施 flipDiagonally()
?
编辑:这不是作业。我只是想看看是否有任何 SOers 有比最明显的路线更有创意的解决方案。但是由于一些人抱怨这个问题太简单了,那么有没有一个适用于第 n维数组的更通用的解决方案呢?
即你将如何编写一个函数以便:
$foo[j][k][...][x][y][z] = $bar[z][k][...][x][y][j]
?(ps。我不认为 12 嵌套 for loops
是这种情况下的最佳解决方案。)
原文由 Calvin 发布,翻译遵循 CC BY-SA 4.0 许可协议
或者,如果您使用的是 PHP 5.6 或更高版本: