問題1 php条件分岐
以下の条件に従って、変数$ageに格納された年齢が18歳未満の場合は「未成年」、
18歳以上の場合は「成年」という文字列を出力するPHPコードを作成してください。
解説
まず、変数$ageに格納された数値が18歳未満であるかどうかを判定する条件分岐を行います。
PHPでは、比較演算子を用いて数値の大小関係を判定することができます。以下のようにif文を使って、条件分岐を実装します。
<?php
$age = 16;
if ($age < 18) {
echo '未成年';
} else {
echo 成年';
}
?>
問題2 php条件分岐
以下の条件に従って、変数$numberに格納された数値が正の数かどうかを
判定するPHPコードを作成してください。
条件
$numberには整数値が格納されているものとする。
解説
この問題では、変数$numberに格納された数値が正の数かどうかを判定する条件分岐を行います。
まず、0かどうかを判定し、その後に正の数か負の数かを判定します。
以下のようにif文を使って、条件分岐を実装します。
<?php
$number = 5;
if ($number == 0) {
echo '0です';
} elseif ($number > 0) {
echo '正の数';
} else {
echo '負の数';
}
?>
問題3 php配列の値を条件分岐で振り分ける
次のような配列があります。
この配列から、値が10未満の要素は”A”、10以上20未満の要素は”B”、
20以上30未満の要素は”C”、30以上の要素は”D”と表示するプログラムを作成してください
<?php
$array = array(2, 15, 25, 33, 7, 18, 29, 5);
foreach($array as $value){
if ($value < 10) {
echo 'A';
} elseif ($value >= 10 && $value < 20) {
echo 'B';
} elseif ($value >= 20 && $value < 30) {
echo 'C';
} else {
echo 'D';
}
}
?>
解説
まず、foreach文を使って配列の要素を1つずつ取り出し、その値がどの範囲に属するかをif文で判断しています。
範囲に合致する場合、対応する文字列を出力します。
問題4 php date関数 strtotime関数を使って日付加算
次の日付を取得してください。
「2023年4月1日」の2週間後の日付を取得する。
解説:
date関数は、指定した書式に従って日付を取得することが可能です
strtotime関数は、指定した文字列からUnixタイムスタンプを取得します
Unixタイムスタンプとは、1970年1月1日0時0分0秒からの経過秒数を表します
これらの関数を組み合わせることで、指定した日付から日数を加算して
新しい日付を取得することができます。
<?php
// 指定した日付
$date = '2023-04-01';
// 日数
$days = 14;
// 日数を加算して新しい日付を取得する
$new_date = date('Y-m-d', strtotime($date . ' + ' . $days . ' days'));
// 結果を出力する
echo '指定した日付の2週間後の日付は、' . $new_date . 'です';
?>
解説
このソースコードでは、指定した日付を「$date」変数に、日数を「$days」変数に代入し
そして、date関数とstrtotime関数を使って、指定した日付に日数を加算して新しい日付を取得しています。
「$date」変数の値に日数を加算するために、「$date」と「$days」変数を結合して、「+」を挟んでいます。
最後に、date関数で取得した日付を「Y-m-d」の書式に整形して、「$new_date」変数に代入しています。
問題5 php DateTimeクラスを使って日付の差分
「2023年4月1日」と「2023年4月15日」の日付の差を求めてください。
条件 DateTimeクラスを使用する事
DateTimeクラスは、日付や時間を扱うためのクラスで、演算子を使って簡単に日付の計算ができます。
まず、DateTimeオブジェクトを作成して、それぞれの日付をセットします。
そして、diffメソッドを使って2つの日付の差を求めます。
最後に、formatメソッドを使って差分を「日数」として取得します。
<?php
// 日付1を作成
$date1 = new DateTime('2023-04-01');
// 日付2を作成
$date2 = new DateTime('2023-04-15');
// 日付の差分を求める
$diff = $date1->diff($date2);
// 日数を取得する
$days = $diff->format('%a');
// 結果を出力する
echo "日付1と日付2の差は、{$days}日です。";
?>
このソースコードでは、DateTimeクラスを使って、2つの日付をオブジェクトを作成し
diffメソッドを使って2つの日付の差分を求め、
formatメソッドで「%a」を指定して日数を取得しています。
「%a」は、日数を表すフォーマット文字です。最後に、結果を出力しています。
問題6 php 配列より平均値を求める
以下の数値を配列として定義し、その平均値を求めてください。
「10, 20, 30, 40, 50」
解説
配列を使って平均値を求める場合、まずは配列の要素を合計して、
その合計値を要素数で割ることで平均値を求めます。
配列の要素をforeach文を使って取り出します。
<?php
// 配列を定義する
$array = array(10, 20, 30, 40, 50);
// 配列の要素数を取得する
$count = count($array);
// 配列の要素を合計する
$sum = 0;
foreach ($array as $value) {
$sum += $value;
}
// 平均値を求める
$average = $sum / $count;
// 結果を出力する
echo "平均値は、{$average}です。";
?>
解説
count関数を使って配列の要素数を取得し、foreach文を使って配列の要素を取り出しながら、
合計値を計算しています。
最後に、要素数で割って平均値を求め、結果を出力しています。
問題7 php配列より最小値を求める
以下の数値を配列として定義し、その中から最小値を求めてください。
「30, 20, 50, 10, 40」
解説
配列から最小値を求める場合、まずは配列の最初の要素を仮の最小値として設定し、
その後、配列の要素を順番に比較しながら最小値を更新します。
配列の要素をforeach文を使って取り出すことができます。
<?php
// 配列を定義する
$array = array(30, 20, 50, 10, 40);
// 最小値を初期化する
$min = $array[0];
// 配列の要素を比較して、最小値を求める
foreach ($array as $value) {
if ($value < $min) {
$min = $value;
}
}
// 結果を出力する
echo "最小値は、{$min}です。";
?>
問題8 php配列より最大値を求める
以下の数値を配列として定義し、その中から最大値を求めてください。
「30, 20, 50, 10, 40」
解説
配列から最大値を求める場合、
まずは配列の最初の要素を仮の最大値として設定し、その後、配列の要素を順番に比較しながら最大値を更新します。
配列の要素をforeach文を使って取り出すことができます。
<?php
// 配列を定義する
$array = array(30, 20, 50, 10, 40);
// 最大値を初期化する
$max = $array[0];
// 配列の要素を比較して、最大値を求める
foreach ($array as $value) {
if ($value > $max) {
$max = $value;
}
}
// 結果を出力する
echo "最大値は、{$max}です。";
?>
配列の最初の要素を仮の最大値として設定し、
foreach文を使って配列の要素を取り出しながら、現在の最大値と比較して更新しています。
最後に、結果を出力しています。
問題9 php配列を昇順に並び替える
以下の数値を配列として定義し、昇順に並び替えてください。
「30, 20, 50, 10, 40」
解説
配列を昇順に並び替える場合、繰り返し処理を使って隣り合う要素を比較して、
小さい方を前に移動していく「バブルソート」というアルゴリズムを使うことができます。
具体的には、配列の要素を二つずつ取り出して比較し、小さい方を前に移動させる処理を繰り返していきます。
<?php
// 配列を定義する
$array = array(30, 20, 50, 10, 40);
// 配列の要素を昇順に並び替える
$count = count($array);
for ($i = 0; $i < $count - 1; $i++) {
for ($j = $i + 1; $j < $count; $j++) {
if ($array[$i] > $array[$j]) {
$tmp = $array[$i];
$array[$i] = $array[$j];
$array[$j] = $tmp;
}
}
}
// 結果を出力する
foreach ($array as $value) {
echo "{$value} ";
}
?>
二重のfor文を使って配列の要素を二つずつ取り出して比較し、
小さい方を前に移動させる処理を繰り返しています。
最後に、結果を出力しています。
問題10 php配列より偶数のみ合計を求める
以下の配列が与えられています。
この配列から、要素の値が偶数のものだけを取り出して、値の合計を求めるプログラムを作成してください。
$array = array(3, 2, 4, 1, 6, 7, 8, 9, 5);
ただし、次のような条件を満たすようにしてください。
配列の要素数や要素の値は固定しません。
組み込み関数や配列関数を一切使わないようにしてください。
解説:
この問題は、配列の要素の値が偶数のものだけを取り出すという条件があるため、
繰り返し処理を使って要素を一つずつ取り出し、
その値が偶数であるかどうかを判断していくことになります。
偶数である場合は、その値を合計に加えていきます。
<?php
// 配列を定義する
$array = array(3, 2, 4, 1, 6, 7, 8, 9, 5);
// 偶数の値の合計を求める
$sum = 0;
foreach ($array as $value) {
if ($value % 2 == 0) {
$sum += $value;
}
}
// 結果を出力する
echo "偶数の値の合計は{$sum}です。";
?>
繰り返し処理を使って配列の要素を一つずつ取り出し、
その値が偶数であるかどうかを判断していきます。
偶数である場合は、その値を合計に加えていきます。
最後に、結果を出力しています。