データベースから取得するデータの[行]と[列]を入れ替えたい場合、SQLでもできますが複雑になってしまうことがあるので、二次元配列(2次元配列)の[行]と[列]を入れ替えるプログラムを実装してみました。
サンプルプログラム
function transMatrix(array $arrays) {
$result = array();
foreach ($arrays as $i => $array) {
foreach ($array as $j => $value) {
$result[$j][$i] = $value;
}
}
return $result;
}
解説
引数の[$arrays]の二次元配列(2次元配列)を二重ループで処理します。
foreach ($arrays as $i => $array) {
foreach ($array as $j => $value) {
(処理)
}
}
処理は、配列の添え字[$i]と[$j]を入れ替えて中身を代入していきます。
$result[$j][$i] = $value;
PHPを例としていますが他言語に書き換える場合、言語によっては配列の宣言時にサイズを指定するので注意が必要です。