php Transpose an array

oder anders ausgedrückt, „rotate a multidimensional array“

Das hier fällt in die Kategorie TIL.

In einem großartigen Beitrag von Adam Wathan habe ich gelernt das man PHP Arrays relativ einfach rotieren kann. Darüber bin ich dann über einen StackOverflow Beitrag gestolpert, der es nochmals sehr vereinfacht hat.

Dazu ein sehr einfaches Beispiel, etwas nützlicheres bei Adam.


$before = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
];

function transpose($array) {
    return array_map(null, ...$array);
}

$after = transpose($before);

//  $after = [
//      [1, 4, 7],
//      [2, 5, 8],
//      [3, 6, 9],
//  ];

print_r($before);
print_r($after);