Транспонирование многомерных массивов в PHPPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Транспонирование многомерных массивов в PHP

Сообщение Anonymous »

Как бы вы перевернули на 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"
}
Как бы вы реализовалиlipDiagonally()?

Изменить: это не домашнее задание. Я просто хочу посмотреть, есть ли у кого-нибудь из SO-специалистов более творческое решение, чем самый очевидный путь. Но поскольку некоторые люди жаловались на то, что эта проблема слишком проста, как насчет более общего решения, которое работает с массивом измерений nth?

т.е. Как бы вы написали функцию, чтобы:

Код: Выделить всё

$foo[j][k][...][x][y][z] = $bar[z][k][...][x][y][j]
?(ps. Я не думаю, что 12 вложенных циклов for — лучшее решение в этом случае.)

Подробнее здесь: https://stackoverflow.com/questions/797 ... ays-in-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»