ホームページ >バックエンド開発 >PHPの問題 >PHPで配列の列を合計する方法

PHPで配列の列を合計する方法

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

PHP では、配列の列を合計することが一般的な要件です。配列が 1 次元配列の場合は、array_sum() 関数を使用します。例:

$array = array(1, 2, 3, 4, 5);
$sum = array_sum($array); // $sum = 15

ただし、配列が 2 次元配列の場合は、まず列のすべての値を抽出してから、それらを合計する必要があります。 array_column() 関数を使用して列の値を抽出し、array_sum() 関数を使用して値を合計することができます。例:

$records = array(
    array('name' => 'John', 'score' => 85),
    array('name' => 'Mary', 'score' => 92),
    array('name' => 'Peter', 'score' => 78),
    array('name' => 'Lisa', 'score' => 89)
);
$scores = array_column($records, 'score');
$sum = array_sum($scores); // $sum = 344

上の例では、$records は各人の名前とスコアを含む 2 次元配列です。 array_column() 関数を使用してすべてのスコアを抽出し、array_sum() 関数を使用してそれらを合計すると、合計スコアは 344 になります。

この列の値に数値以外の型 (文字列など) が含まれる場合、最初に型変換によって数値に変換する必要があることに注意してください。そうしないと、合計の結果が不正確になる可能性があります。例:

$records = array(
    array('name' => 'John', 'score' => '85'),
    array('name' => 'Mary', 'score' => '92'),
    array('name' => 'Peter', 'score' => '78'),
    array('name' => 'Lisa', 'score' => '89')
);
$scores = array_column($records, 'score');
$sum = array_sum($scores); // $sum = 0

上記の例では、$records 内のスコアはすべて文字列型です。それらを直接合計すると、不正確な結果 0 が得られます。 array_column() 関数の 3 番目の引数を指定することで数値型に変換できます。例:

$records = array(
    array('name' => 'John', 'score' => '85'),
    array('name' => 'Mary', 'score' => '92'),
    array('name' => 'Peter', 'score' => '78'),
    array('name' => 'Lisa', 'score' => '89')
);
$scores = array_column($records, 'score', 'name');
$scores = array_map('intval', $scores);
$sum = array_sum($scores); // $sum = 344

上の例では、array_column() 関数を使用して各人のスコアを抽出し、名前をキー、スコアを値として新しい配列に保存します。次に、array_map() 関数を使用してこれらの値を型変換し、最後に array_sum() 関数を使用してそれらを合計し、正しい結果 344 を取得します。

要約すると、PHP では配列の列を合計することは難しくなく、データ型に注意するだけで済みます。

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

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