統計生成のためにいくつかのデータベース結果を転置しています。
元の配列:
Array
(
[0] => Array
(
[a] => apple
[b] => beer
[c] => chocolate
)
[1] => Array
(
[a] => aardvark
[b] => bear
[c] => chupacabra
)
)
望ましい結果:
Array
(
[a] => Array
(
[0] => apple
[1] => aardvark
)
[b] => Array
(
[0] => beer
[1] => bear
)
[c] => Array
(
[0] => chocolate
[1] => chupacabra
)
)
サンプルコード:
$stats[] = array(
'a' => 'apple',
'b' => 'beer',
'c' => 'chocolate'
);
$stats[] = array(
'a' => 'aardvark',
'b' => 'bear',
'c' => 'chupacabra'
);
foreach (array_keys($stats[0]) as $key){
$data[$key] = array_column($stats, $key);
}
上記のコードは、array_keys と array_column (php 5.5) を使用して正常に動作しています。
同じ結果を達成するためのよりエレガントな方法またはphp関数はありますか?
この種のリファクタリングの一般名は何ですか?
編集:
以下のコメントによると、これの正しい用語は「移調」です