有名なネタ。の割にqiitaに見当たらないので貼っとく。

私が知ってるなかで最古の情報はこれ。2011年。もう7年前か....

PHPで二次元配列の転置行列を得る方法 - かなりすごいブログ

transpose.php
function transverse_matrix($array){
    return call_user_func_array('array_map',array_merge(array(null),$array));
}

array_mapの引数として

  • 先頭にnullを差し込む
    • 本来はcallbackを指定するところだが、nullを受け付けるとか流石はPHPどうよ感
  • 配列の1次元目を、個々の引数にバラす
    • そしてcallback=nullの処理で、引数の中身が全部くっついて出て来る。
    • func_get_args()の出力がそのまま漏れてる?

をするための PHPの言語機能としては call_user_func_arrayを使うしか無い、のでちょっと解りにくい記述にはなってる。

例えば他の言語では....と言おうと思ったらあるわあるわ。

Python2では 2次配列を転置したい - Qiita

Rubyでは 配列の転置 - Qiita

いずれも不定長配列の構文があるので見た目はシンプル。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.