php練習問題1

まずは、初心者からステップアップするためにphp練習問題を解いてみましょう
組込み関数は使わずに、自力でロジックを組む事で、考える力を学びます。

php組込み関数を使わないで配列の最大値を求める

$array = [1, 5, 2, 9, 4];
上記の配列の中から最大値を求めるにはどうしたら良いでしょうか?
配列の0番目から最後まで総当たりで比較していけば最大値を求める事ができます

まずは、変数$maxに0を代入します
それを初期の最大値として後は、総当たりで比較していきます最大値0と配列[0]番目の1と比較する
1が大きいので$maxに1を代入します最大値1と配列[1]番目の5と比較する
5が大きいので$maxに5を代入します

最大値5と配列[2]番目の2と比較する
5が大きいので何もしない

最大値5と配列[3]番目の9と比較する
9が大きいので$maxに9を代入します

最大値9と配列[4]番目の2と比較する
9が大きいので何もしない
$maxの値は9となります

ここで考えないといけない事は、何度も同じ比較処理を書いている事です。
配列の要素数が変動する場合に困ります。
そこで、配列を繰返し処理で繰返し、その中で最大値を求める比較処理を行うと
もっとすっきりしたコードになります。

繰返し処理開始
最大値$maxと配列[n]番目の値と比較する
配列[n]番目が大きい場合
$maxに配列[n]番目を代入する
配列[n]番目が小さい場合
何もしない
繰返し処理終了

配列の最大値を求めるサンプルプログラムで確認してみましょう

<?php

// 配列を定義
$array = [1, 5, 2, 9, 4];
// 配列の要素数を取得
$count = count($array);

$i = 0;
// 最大値を仮に0として代入する
$max = 0;

// 配列の要素繰返し処理で繰り返す
for (; $i < $count; $i++) {
  // 配列の要素を順番に総当たり比較を行う
  if ($max < $array[$i]) {
    // 配列[$i]の値が大きい場合は$maxを上書きする
    $max = $array[$i];
  }
}

echo '最大値は:' . $max . PHP_EOL;
?>

php組込み関数を使わないで配列の最小値を求める

$array = [1, 5, 2, 9, 4];
上記の配列の中から最小値を求める方法は簡単ですね。
比較条件の最大値を最小値に変更するだけで最小値を求める事ができます

配列の最小値を求めるサンプルプログラムで確認してみましょう

<?php

// 配列を定義
$array = [1, 5, 2, 9, 4];
// 配列の要素数を取得
$count = count($array);
$i = 0;
// 最小値を仮に99999999として代入する
$min = 99999999;
// 配列の要素繰返し処理で繰り返す
for (; $i < $count; $i++) {
  // 配列の要素を順番に総当たり比較を行う
  if ($min > $array[$i]) {
    // 配列[$i]の値が小さい場合は$minを上書きする
    $min = $array[$i];
  }
}

echo '最小値は:' . $min . PHP_EOL;

?>
タイトルとURLをコピーしました