【PHP】Lesson4-4:配列を調査しよう

一つ前のレッスンでは 配列の要素追加/削除 について学習しました。
今回は 配列の調査 について見ていきましょう。
Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:関数編
Lesson4:データ構造編
・Lesson4-1:配列の基本を理解しよう
・Lesson4-2:キーが文字列の配列を理解しよう
・Lesson4-3:配列の要素を追加/削除しよう
・Lesson4-4:配列を調査しよう ◁今回はココ
・Lesson4-5:配列を操作しよう
・Lesson4-6:配列を並び替えよう
・Lesson4-7:配列の多次元化を理解しよう
・確認問題4-1:ナインゲームを作ろう
・確認問題4-2:宝探しゲームを作ろう
・確認問題4-3:マルバツゲームを作ろう
Lesson5:クラス編
配列調査|要素数や値の検索の調べ方などの解説
PHPで配列を扱う際、要素の数を調べたい、特定の値が含まれているか確認したい、最大値や最小値を知りたいといったシーンはよくあります。
こうした「配列の調査」は、データの集計や検索、判定処理など、実践的なプログラムを作るうえで欠かせないテクニックです。
本記事では、配列の要素数を数える方法や、最大値・最小値の取得、特定の値の存在確認や検索に使える便利な関数について、初心者にもわかりやすく解説します。
さっそく本文を読み進めて、PHPで配列を自在に調査・活用できるスキルを身につけましょう!

配列の中身を調べる方法|便利な組み込み関数一覧
「配列の調査」とは、配列に関する情報を取得する操作を指します。
例えば配列の要素数、配列内の最大値や最小値の確認、特定の値が存在するかを調べるなどです。
この調査にはPHPが提供する組み込み関数を利用します。これらの関数を使えば簡単に配列を操作し、必要な情報を取得することが可能です。
以下は配列の調査に使用する主な関数とその構文です:
組み込み関数 | 書き方 | 意味 |
---|---|---|
count() 関数 | count($array); | 配列 $array の要素数を取得します。 |
max() 関数 | max($array); | 配列 $array の中で最大の値を取得します。 |
min() 関数 | min($array); | 配列 $array の中で最小の値を取得します。 |
array_sum() 関数 | array_sum($array); | 配列 $array の要素の合計を計算します。 |
in_array() 関数 | in_array($needle, $array); | $needle が配列 $array 内に存在するかを確認します。 |
array_search() 関数 | array_search($needle, $array); | $needle が配列 $array のどこにあるかを取得します。見つからない場合は false を返します。 |
配列調査関数の使い方|実践コードで学ぶ具体例
以下の例では、配列を調査する様々な関数を使った実際のコードを示します。
<?php // 配列を定義 $numbers = [10, 20, 30, 40, 50]; // 配列の要素数を調べる echo "配列の要素数: " . count($numbers) . PHP_EOL; // 配列内の最大値を取得 echo "最大値: " . max($numbers) . PHP_EOL; // 配列内の最小値を取得 echo "最小値: " . min($numbers) . PHP_EOL; // 配列内の合計を取得 echo "合計: " . array_sum($numbers) . PHP_EOL; // 値が配列に存在するか確認 $value = 20; if (in_array($value, $numbers)) { echo "$value は配列内に存在します。" . PHP_EOL; } else { echo "$value は配列内に存在しません。" . PHP_EOL; } // 特定の値の位置を検索 $searchValue = 30; $position = array_search($searchValue, $numbers); if ($position !== false) { echo "$searchValue は配列のインデックス $position にあります。" . PHP_EOL; } else { echo "$searchValue は配列内に見つかりません。" . PHP_EOL; }
このコードは配列の調査に使用する関数を網羅的に示しています。
例えばcount
関数は配列のサイズを確認するのに便利です。一方、max
や min
は数値的な情報を扱うときに役立ちます。
また、in_array
と array_search
を組み合わせることで、配列内の存在確認と位置特定が可能です。
まとめ|配列調査の基本を身につけよう
この記事では、PHPの配列調査について、要素数の数え方、最大値・最小値の取得、特定の値の存在確認や検索方法など、よく使う組み込み関数とその使い方を解説しました。
これらのスキルを身につけることで、配列の情報を自在に調べられるようになり、データの集計や判定など、実践的なプログラムにも応用できる力がつきます。
次のステップでも、配列をより便利に使いこなすテクニックを積み重ねていきましょう!
演習問題|配列調査を実践で理解しよう

PHPの配列を調査する方法を学びましょう。
ランダムな数値を含む配列を生成し、その配列の要素数、最大値、最小値、合計値を調査します。
また特定の値が配列内に存在するかを確認し、その値の位置を調べます。
この演習の要件
以下の要件に従ってコードを完成させてください。
- 配列
$numbers
を定義し、ランダムな1から100の整数を5つ格納すること。 - 配列の要素数を
count
関数を使って取得し、表示すること。 - 配列内の最大値を
max
関数を使って取得し、表示すること。 - 配列内の最小値を
min
関数を使って取得し、表示すること。 - 配列内の全要素の合計値を
array_sum
関数を使って取得し、表示すること。 - 配列内に特定の値(例: 50)が存在するかを
in_array
関数を使って確認し、結果を表示すること。 - 配列内で特定の値(配列の最初の値)の位置を
array_search
関数を使って取得し、その位置を表示すること。
ただし、以下のような実行結果となること。
生成された配列: 12, 55, 67, 89, 23 配列の要素数: 5 配列内の最大値: 89 配列内の最小値: 12 配列内の合計: 246 値 50 は配列内に存在しません。 値 12 は配列のインデックス 0 に存在します。
解き方のヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)1:PHPコードの開始を宣言
2:$numbers配列を初期化
3:for文で0から4までのループを開始
□ mt_rand関数で1から100のランダムな整数を生成し、配列$numbersに追加
4:ループ終了
5:「生成された配列: 」という文字列をimplode関数で結合した$numbers配列の値と共に出力
6:配列の要素数を取得し、「配列の要素数: 」という文字列と共に出力
7:配列内の最大値を取得し、「配列内の最大値: 」という文字列と共に出力
8:配列内の最小値を取得し、「配列内の最小値: 」という文字列と共に出力
9:配列内の合計値を取得し、「配列内の合計: 」という文字列と共に出力
10:$checkValue変数を50に設定
11:in_array関数を使用して$checkValueが配列$numbersに存在するか判定
□ 真の場合、「値 50 は配列内に存在します。」を出力
□ 偽の場合、「値 50 は配列内に存在しません。」を出力
12:$searchValue変数に配列$numbersの最初の値を代入
13:array_search関数を使用して$searchValueの位置を配列$numbers内で検索
□ 検索結果がfalseでない場合、「値 $searchValue は配列のインデックス $position に存在します。」を出力
□ 検索結果がfalseの場合、「値 $searchValue は配列内に存在しません。」を出力
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
<?php // 配列を調査する練習問題 // 配列の定義(ランダムな値を生成) $numbers = []; for ($i = 0; $i < 5; $i++) { /*【穴埋め問題1】 ここにmt_randを使って1から100のランダムな数値を生成し、配列$numbersに追加するコードを書いてください。 */ } // 配列を表示 echo "生成された配列: " . implode(", ", $numbers) . PHP_EOL; // 配列の要素数を調査する /*【穴埋め問題2】 ここにcount関数を使って配列$numbersの要素数を出力するコードを書いてください。 */ // 配列内の最大値を取得する /*【穴埋め問題3】 ここにmax関数を使って配列$numbersの最大値を出力するコードを書いてください。 */ // 配列内の最小値を取得する /*【穴埋め問題4】 ここにmin関数を使って配列$numbersの最小値を出力するコードを書いてください。 */ // 配列内の合計を取得する /*【穴埋め問題5】 ここにarray_sum関数を使って配列$numbersの合計値を出力するコードを書いてください。 */ // 配列内に特定の値があるか確認する $checkValue = 50; /*【穴埋め問題6】 ここにin_array関数を使って$checkValueが配列$numbers内に存在するか確認し、その結果を出力するコードを書いてください。 */ // 配列内で特定の値の位置を探す $searchValue = $numbers[0]; /*【穴埋め問題7】 ここにarray_search関数を使って$searchValueの位置を調べ、その結果を出力するコードを書いてください。 */
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
演習問題の答え合わせ
この問題の正解コードとその解説は以下の通りです。
クリックして開いて確認してください。
- 正解コード
-
<?php // 配列を調査する練習問題 // 配列の定義(ランダムな値を生成) $numbers = []; for ($i = 0; $i < 5; $i++) { // mt_randで1から100のランダムな数値を生成 $numbers[] = mt_rand(1, 100); } // 配列を表示 echo "生成された配列: " . implode(", ", $numbers) . PHP_EOL; // 配列の要素数を調査する // count関数は配列の要素数を返します echo "配列の要素数: " . count($numbers) . PHP_EOL; // 配列内の最大値を取得する // max関数は配列内の最大値を返します echo "配列内の最大値: " . max($numbers) . PHP_EOL; // 配列内の最小値を取得する // min関数は配列内の最小値を返します echo "配列内の最小値: " . min($numbers) . PHP_EOL; // 配列内の合計を取得する // array_sum関数は配列内の全ての要素の合計を返します echo "配列内の合計: " . array_sum($numbers) . PHP_EOL; // 配列内に特定の値があるか確認する $checkValue = 50; // in_array関数は特定の値が配列内に存在するか確認します if (in_array($checkValue, $numbers)) { echo "値 $checkValue は配列内に存在します。" . PHP_EOL; } else { echo "値 $checkValue は配列内に存在しません。" . PHP_EOL; } // 配列内で特定の値の位置を探す $searchValue = $numbers[0]; // 配列の最初の値を探してみる // array_search関数は指定した値のキーを返します $position = array_search($searchValue, $numbers); if ($position !== false) { echo "値 $searchValue は配列のインデックス $position に存在します。" . PHP_EOL; } else { echo "値 $searchValue は配列内に存在しません。" . PHP_EOL; }
- 正解コードの解説
-
コードをブロックごとに分割して解説します。
配列の生成と初期化
$numbers = []; for ($i = 0; $i < 5; $i++) { $numbers[] = mt_rand(1, 100); }
$numbers = [];
: 空の配列を定義します。配列は複数のデータをまとめて格納できる構造です。mt_rand(1, 100);
: 1から100までのランダムな数値を生成します。これを配列に追加していきます。for ($i = 0; $i < 5; $i++)
: ループを5回繰り返し、配列にランダムな値を追加しています。
配列の表示
echo "生成された配列: " . implode(", ", $numbers) . PHP_EOL;
implode(", ", $numbers)
: 配列の要素をカンマ区切りの文字列に変換します。これで配列の内容を確認できます。PHP_EOL
: 改行を表します。OSに適した改行コードを挿入します。
配列の要素数の調査
echo "配列の要素数: " . count($numbers) . PHP_EOL;
count($numbers)
: 配列の要素数を返す関数です。ここでは配列に格納された値が5つなので、5が表示されます。
配列の最大値・最小値の取得
echo "配列内の最大値: " . max($numbers) . PHP_EOL; echo "配列内の最小値: " . min($numbers) . PHP_EOL;
max($numbers)
: 配列の中で最も大きな値を返します。min($numbers)
: 配列の中で最も小さな値を返します。
配列の合計値の取得
echo "配列内の合計: " . array_sum($numbers) . PHP_EOL;
array_sum($numbers)
: 配列内の全要素を合計した値を返します。ここではランダムな値を足し合わせた結果が表示されます。
配列に特定の値が存在するか確認
$checkValue = 50; if (in_array($checkValue, $numbers)) { echo "値 $checkValue は配列内に存在します。" . PHP_EOL; } else { echo "値 $checkValue は配列内に存在しません。" . PHP_EOL; }
in_array($checkValue, $numbers)
: 配列内に特定の値(ここでは50)が存在するか確認する関数です。存在すれば
true
、しなければfalse
を返します。配列内で特定の値の位置を調べる
$searchValue = $numbers[0]; $position = array_search($searchValue, $numbers); if ($position !== false) { echo "値 $searchValue は配列のインデックス $position に存在します。" . PHP_EOL; } else { echo "値 $searchValue は配列内に存在しません。" . PHP_EOL; }
array_search($searchValue, $numbers)
: 配列内で特定の値が存在するインデックスを返します。
値が見つからない場合はfalse
を返します。!== false
: 見つからない場合を正確に判定するため、厳密な比較を行っています。