行列の行を列に変換するには、まず行列を適切なデータ構造で表現する必要があります。一般的に、行列は2次元配列として表現されます。以下に、いくつかの方法をコード例とともに紹介します。
方法1: 2次元配列の操作を使用する方法
function transposeMatrix($matrix) {
$transposedMatrix = [];
$rowCount = count($matrix);
$columnCount = count($matrix[0]);
for ($i = 0; $i < $columnCount; $i++) {
$transposedRow = [];
for ($j = 0; $j < $rowCount; $j++) {
$transposedRow[] = $matrix[$j][$i];
}
$transposedMatrix[] = $transposedRow;
}
return $transposedMatrix;
}
// 使用例
$matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
$transposedMatrix = transposeMatrix($matrix);
print_r($transposedMatrix);
方法2: array_mapを使用する方法
function transposeMatrix($matrix) {
return array_map(null, ...$matrix);
}
// 使用例
$matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
$transposedMatrix = transposeMatrix($matrix);
print_r($transposedMatrix);
方法3: ライブラリを使用する方法 PHPには行列操作を簡単に行えるライブラリも存在します。例えば、Math PHPと呼ばれるライブラリを使用すると、以下のように行列の転置を行うことができます。
require 'vendor/autoload.php';
use MathPHP\LinearAlgebra\Matrix;
$matrix = new Matrix([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]);
$transposedMatrix = $matrix->transpose();
print_r($transposedMatrix->getMatrix());
これらの方法を使用することで、PHPで行列の行を列に変換することができます。選択した方法によって、必要なライブラリのインストールや設定が必要になる場合があるため、環境に合わせて最適な方法を選んでください。