問題
7
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
E: 7
A: 6
C: 0
D: 0
F: 0
解答と解説(連想配列を操作しよう)
解説
LINE登録して解答を見る
※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます
配列に配列を格納できるように連想配列にも連想配列や配列が格納できるぞ。
今回の課題はtestが存在しないケース、配列ではないケースがある。
issetやis_array等を駆使して処理できるデータ形式になっているか確認しよう。
PHPを含む大部分のプログラム言語では0除算はエラーとなる。
除算する場合は0で割らないように注意しよう。
連想配列は自由にキーの付け外しが可能となっている。
ここでは平均点を格納して後の処理につなげるようにしている。
usortにソートロジックを実装した関数を渡そう。
コールバック関数でソートの基準値を返却するとリストを並び替えてくれるぞ。
今回はコールバック関数ではなくクロージャ(無名関数)を利用した。
一部の関数では必須なので覚えておこう。