多次元配列の列の値を合計する
多次元配列では、特定の列を合計する際に課題が生じます。次の配列の例を考えてみましょう。
$arr = [ [0] => ['f_count' => 1, 'uid' => 105], [1] => ['f_count' => 0, 'uid' => 106], [2] => ['f_count' => 2, 'uid' => 107], [3] => ['f_count' => 0, 'uid' => 108], [4] => ['f_count' => 1, 'uid' => 109], [5] => ['f_count' => 0, 'uid' => 110], [6] => ['f_count' => 3, 'uid' => 111] ];
必要な出力は 7 で、これは f_count 列の合計です。
Foreach ループを使用しないソリューション
PHP 5.5 以降では、これを簡素化する 2 つの関数が提供されていますtask:
これらの関数を使用すると、変数を使用せずに合計を取得できます。 foreach ループ:
$f_count_column = array_column($arr, 'f_count'); $sum = array_sum($f_count_column);
代替アプローチ: クエリの再構築
多次元配列を取得する代わりに、1 次元配列を返すようにクエリを再構築できます。
$query = "SELECT SUM(f_count) AS total_f_count FROM users WHERE gid=:gid"; $stmt = $pdo->prepare($query); $stmt->execute([':gid' => $gid]); $row = $stmt->fetch(PDO::FETCH_ASSOC); $total_f_count = $row['total_f_count'];
以上が多次元配列の特定の列の値を効率的に合計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。