問題

7
PHP

連想配列を操作しよう

この問題では、PHPの配列データを扱いながら、複数の値をもとにしたデータ処理の流れを学びます。
条件分岐やデータの扱い方を理解しながら、実際のコードをもとに実装していきましょう。

PHPの問題に挑戦しよう!

問題

連想配列を操作しよう

PHPで配列データを扱いながら、複数の値をもとにデータを処理し、結果をもとに並び替えを行う方法を学習します。

あらかじめエディタに書くコード

                    $list[] = ['name' => 'A', 'test' => [10, 3, 5]];
$list[] = ['name' => 'B', 'test' => [7, 9]];
$list[] = ['name' => 'C', 'test' => []];
$list[] = ['name' => 'D', 'test' => ""];
$list[] = ['name' => 'E', 'test' => [7]];
$list[] = ['name' => 'F', 'hoge' => []];
¥PHP¥
                

期待する画面

B: 8
E: 7
A: 6
C: 0
D: 0
F: 0

解答と解説(連想配列を操作しよう)

解説

LINE登録して解答を見る

※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます

まず各要素の test キーに格納された点数の配列をループして、合計値と件数を求めます。

ここで注意が必要なのが、isset($item['test']) と is_array($item['test']) の2重チェックです。
test キーが存在しない要素や、配列でない値が入っている要素を除外するために必要な処理です。
このチェックを省略すると、意図しないエラーや計算ミスが発生します。

件数が1以上のときのみ $total / $count で平均を計算し、average キーに格納します。
件数が0の場合は平均を0として扱います。

次に usort を使って平均点の高い順に並び替えます。
usort とは、ユーザーが定義した比較関数をもとに配列をソートする関数です。
$b["average"] - $a["average"] で降順、$a - $b にすると昇順になるので、向きを間違えないよう注意しましょう。

このように、データの集計・条件分岐・並び替えという一連の処理は、実務でも頻出する基本パターンです。

補足

usort とはUser Sortの略で、PHPの組み込みソート関数に比べて「どの値を基準に・どの順番で」並べるかを自由に指定できるのが特徴です。
連想配列のソートによく使われます。

usortの基本的な使い方はこちらで確認できます。
・関連問題:usort
・PHPの基礎から学びたい方:PHP入門講座

ポイント

PHP配列のデータ処理とソート(usort)の基本

PHPの配列は単なるデータの入れ物ではなく、集計や並び替えなどの処理に活用される重要な構造です。
配列の中に配列を持つデータを扱うことで、より実務に近いデータ処理が可能になります。
条件分岐やソートを組み合わせた一連の処理の流れを理解することが重要です。
エラーを防ぐためのデータチェックや安全な書き方もあわせて身につけましょう。

さらにスキルアップしたい方は公式LINEから「PHP」と送信すると動画が見れます。

LINE登録して動画を視聴する
あなたに合った学習プランは?LINE適正コース診断はこちら