ホームページ >バックエンド開発 >PHPの問題 >PHP言語を使用して2次元配列または行列を合計する方法

PHP言語を使用して2次元配列または行列を合計する方法

PHPz
PHPzオリジナル
2023-04-26 09:06:30761ブラウズ

PHP 開発では、2 次元の配列または行列を合計する操作が頻繁に発生します。このような演算は通常、統計データや行列の固有値の計算などに使用されます。この記事では、PHP 言語を使用して 2 次元配列または行列を合計する方法を紹介します。

2 次元配列の合計

2 次元配列は、外側の配列といくつかの内側の配列で構成されます。各内部配列には同じ数の要素が含まれており、行列として表示できます。 2 次元配列の合計を求めることは、そのすべての要素の合計を求めることになります。

通常、for ループまたは foreach ループを使用して 2 次元配列を走査でき、各要素の値を累積することで 2 次元配列の合計を求めることができます。以下は、foreach ループを使用して 2 次元配列の合計を求めるサンプル コードです:

<?php
$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);

$sum = 0;
foreach ($array as $row) {
    foreach ($row as $value) {
        $sum += $value;
    }
}

echo "The sum of the array is: " . $sum;
?>

上記のコードの出力結果は次のとおりです: 配列の合計は次のとおりです: 45

行列の合計

行列は、m行n列の数値表で構成されるデータセットです。 m×n 行列 A と対応する n×1 ベクトル b の場合、行列の合計とは、A のすべての要素の合計、または b のすべての要素の合計を計算することを指します。

m×n 行列 A の場合、二重ループを使用して各要素を走査し、それらを累積して行列の合計を取得できます。以下は、for ループを使用して行列の合計を求めるコード例です:

<?php
$matrix = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);

$sum = 0;
$n = count($matrix[0]);  // 列数
$m = count($matrix);     // 行数

for ($i = 0; $i < $m; $i++) {
    for ($j = 0; $j < $n; $j++) {
        $sum += $matrix[$i][$j];
    }
}

echo "The sum of the matrix is: " . $sum;
?>

上記のコードの出力結果は次のとおりです: 行列の合計は次のとおりです: 45

For the n×1 ベクトル b では、for ループを使用して各要素を反復し、それらを合計してベクトルの合計を取得できます。以下は、for ループを使用してベクトルの合計を求めるコード例です:

<?php
$vector = array(1, 2, 3, 4, 5);

$sum = 0;
$n = count($vector);

for ($i = 0; $i < $n; $i++) {
    $sum += $vector[$i];
}

echo "The sum of the vector is: " . $sum;
?>

上記のコードの出力は次のとおりです: ベクトルの合計は次のとおりです: 15

要約

この記事では、PHP 言語を使用して 2 次元配列または行列を合計する方法を紹介しました。 2 次元配列の場合、for ループまたは foreach ループを使用して各要素を反復処理し、それらを合計することができます。行列の場合、二重ループを使用して各要素を調べて合計することができます。ベクトルの場合、for ループを直接使用して各要素を反復処理し、それらを合計することができます。これらの操作は、統計や行列の固有値の計算などに役立ちます。

以上がPHP言語を使用して2次元配列または行列を合計する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。