【演習問題1】

一番若い人を取得してください。

正解

<?php

$array = [
    ['area' => '東京都', 'name' => '田中', 'age' => 25, 'sex' => '女性'],
    ['area' => '神奈川', 'name' => '樋口', 'age' => 10, 'sex' => '女性'],
    ['area' => '大阪府', 'name' => '山本', 'age' => 16, 'sex' => '女性'],
    ['area' => '京都府', 'name' => '小山', 'age' => 10, 'sex' => '女性']
];

// ageだけの配列を作る
$ageArray = array_column($array, 'age');  
// ageの最小値の要素だけ取得
foreach($array as $value){
  if($value['age'] == ($minAge =  min($ageArray))){
     echo '一番若いのは、' . $value['age'] . '歳で、'  . $value['area'] . 'の' . $value['name'] . 'さんです。' . '<br>'; 
  }
}

?>

【結果】
一番若いのは、10歳で、神奈川の樋口さんです。
一番若いのは、10歳で、京都府の小山さんです。


【考察】
ageを集めて一番小さい数字を決める。
if文でageがその数字の場合のみ結果を表示。


【調べたもの】
■配列から要素を検索する関数
aruku-hito.hatenablog.jp


■配列から最小値を検索する関数
PHP で最大値・最小値を取り出す - Qiita


不正解

<?php

$array = [
    ['area' => '東京都', 'name' => '田中', 'age' => 25, 'sex' => '女性'],
    ['area' => '神奈川', 'name' => '樋口', 'age' => 10, 'sex' => '女性'],
    ['area' => '大阪府', 'name' => '山本', 'age' => 16, 'sex' => '女性'],
    ['area' => '京都府', 'name' => '小山', 'age' => 10, 'sex' => '女性']
];

$youngest = $array[0];

foreach($array as $key => $value){
        if( $youngest['age'] > $value['age']){
            $youngest = $value; 
        }
}
echo '一番若いのは、' . $youngest['age'] . '歳で、'  . $youngest['area'] . 'の' . $youngest['name'] . 'さんです。'; 
?>

【結果】
一番若いのは、10歳で、神奈川の樋口さんです。

【考察】
if文ですべての要素のageに対して小さい要素のみ残す。

変数を上書きし続けるため結果は1つ。そのためageの数値は同じ人がいなければOK。
例えば、競走で1位を出すなどの場合はOK。