Как бы вы перевернули 90-градусный (транспонированный) многомерный массив в PHP? Например:
// 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 th?
то есть. Как вы напишете функцию так, чтобы:
$foo[j][k][...][x][y][z] = $bar[z][k][...][x][y][j]
? (ps. Я не думаю, что 12 вложенных for loops
- лучшее решение в этом случае.)