問題
7連想配列を操作しよう
この問題では、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¥
期待する画面
E: 7
A: 6
C: 0
D: 0
F: 0
解答と解説(連想配列を操作しよう)
解説
※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用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の配列は単なるデータの入れ物ではなく、集計や並び替えなどの処理に活用される重要な構造です。
配列の中に配列を持つデータを扱うことで、より実務に近いデータ処理が可能になります。
条件分岐やソートを組み合わせた一連の処理の流れを理解することが重要です。
エラーを防ぐためのデータチェックや安全な書き方もあわせて身につけましょう。