
$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
解答ソースコード
$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' => []];
for ($i = 0; $i < count($list); $i++) {
$item = $list[$i];
$total = 0;
$count = 0;
if (isset($item['test']) && is_array($item['test'])) {
foreach ($item['test'] as $point) {
$total += $point;
$count++;
}
}
if ($count) {
$list[$i]["average"] = $total / $count;
} else {
$list[$i]["average"] = 0;
}
}
usort($list, function($a, $b) {
return $b["average"] - $a["average"];
});
foreach ($list as $item) {
echo "{$item["name"]}: {$item["average"]}<br>\n";
}
¥PHP¥
甲賀
なら実務レベルで使えるスキルを
体系的に学ぶことが可能です
Web制作学習は、決して楽ではありませんが
「正しい方向で」「コツコツ」と続ければ、
必ずスキルアップする事が可能です。
甲賀では、挫折せずに学習を継続するための
カリキュラム・サポート体制をご用意しています。
↓↓↓↓
ステップバイステップで
着実にスキルが身につくカリキュラム
-
step 01
初心者でもよく分かる!
Web制作の基礎の基礎1.知っておこうWeb制作に関する基礎知識の話
2.HTMLの書き方や役割を基礎から学ぶマークアップ入門
3.CSSで挫折しない為の基礎学習【超重要プロパティ】
4.基礎を終えたらHTMLコーディングを鍛えよう(デザインから)
5.初心者向けHTMLコーディング完全解説(STEP1総まとめ)
-
step 02
真似して覚えるWeb制作
(デザイン〜プログラミングまで)1.属性ってなに?などなどHTML,CSSの深堀り編
2.デザイナーから直接学ぶ猫ちゃんサイトのデザイン解説
3.鎧模写-YOROIMOSYA【銅の鎧】
4.JavaScriptで学ぶプログラミングの基本のきほん【16項目】
-
step 03
動きをつけたり、効率化!
脱初心者を目指すためのスキルを学ぼう1.jQueryの基本的な使い方から応用まで【プラグイン解説あり】
2.Web制作でCSSを簡単に書くためのSASS入門【小技あり】
3.現場で使うCSS設計の考え方参考サイトを元に解説
4.生のJavaScriptだけで英単語アプリを作ろう(音声読み上げ付き)
-
step 04
ここまでくれば中級者!
ちょこっと応用編のWeb制作1.JavaScriptの屋敷【鳳凰の間】
2.JavaScriptで作るLINE風チャットボット
3.コマンドラインとアプリ操作を同時に学べるGit【15選】
4.EJSを使いコーディング力を中級者まで引き上げる
-
step 05
実務で必須の制作スキル
WordPressについて学ぶ1.鎧模写-YOROIMOSYA【銀の鎧】
2.PHPを基礎から学びたい人向け14項目から学ぶ【入門】
3.PHPで簡易的な掲示板を作ってみよう【コーディングあり】
4.甘えを吹き飛ばす!WordPress開発
5.WordPressで¥400,000の案件を徹底解説!
6.WordPress有料テーマSnow Monkeyの解体書
解説
今回の課題はtestが存在しないケース、配列ではないケースがある。
issetやis_array等を駆使して処理できるデータ形式になっているか確認しよう。
PHPを含む大部分のプログラム言語では0除算はエラーとなる。
除算する場合は0で割らないように注意しよう。
連想配列は自由にキーの付け外しが可能となっている。
ここでは平均点を格納して後の処理につなげるようにしている。
usortにソートロジックを実装した関数を渡そう。
コールバック関数でソートの基準値を返却するとリストを並び替えてくれるぞ。
今回はコールバック関数ではなくクロージャ(無名関数)を利用した。
一部の関数では必須なので覚えておこう。