PHP

【PHP】in_arrayについて 〜条件分岐編〜

この記事では、僕が自分自身で学んでいったことを、メモのようにとっていくものです。

そのため、他の人には全然役に立たなかったりする場合もあると思いますが、ご了承ください。

今回は、『in_array』を使用した条件分岐になります。

ちょっと初心者にはとっつきにくい部分があると思いますので、できるだけわかりやすく解説していきたいと思います。


目次


  • そもそも「in_array」とは?

  • どんなときに使うの?

  • 実際に「in_array」を使ってみよう!

  • 「in_array」の解説

  • まとめ


そもそも「in_array」とは?

そもそもこの「in_array」とは一体なんなのか、簡単に説明していきたいと思います。

こちらの「in_array」というのは、PHPに用意されている関数の一種です。

PHPには様々な関数が用意されています。

そういったものは、使用用途を知ることができれば、誰でも簡単に使用し、コードに組み込むことができます。

関数は難解ではあるけれど、小さな機能みたいなものなので、初心者にとっては非常にありがたいものだったりするわけです。

そして、今回の「in_array」もその非常にありがたい関数の一種なのです。


どんなときに使うの?

「in_array」は配列に指定された値が存在するか確認するための関数になっています。

例えば、文字列などがある配列に存在するかどうか調べたいとします。

今回は車のメーカーが書かれている配列の中から、自分が知っているメーカーがあるかどうか調べたい時。

それをきちんとコードに落とすのは、少々手間がかかります。

// 車のメーカーが記載されている配列

$CarManufacturer = [
"トヨタ",
"日産",
"ホンダ",
"マツダ",
"スズキ",
"三菱" ];

このように車のメーカーが記載されている配列があったとします。

$numcar = "レクサス";

自分が探したい車のメーカーを変数に代入します。

こうしてやっていき、「in_array」を使わずに、配列の中とすり合わせを行うとすると、このようになります。

$CarManufacturers = [

"トヨタ",
"日産",
"ホンダ",
"マツダ",
"スズキ",
"三菱" ];

$numcar = "レクサス";
switch ($numcar) {
case $CarManufacturers[0]:
echo "あなたが探していた車のメーカーは存在します。";
break;

case $CarManufacturers[1]:
echo "あなたが探していた車のメーカーは存在します。";
break;

case $CarManufacturers[2]:
echo "あなたが探していた車のメーカーは存在します。";
break;

case $CarManufacturers[3]:
echo "あなたが探していた車のメーカーは存在します。";
break;

case $CarManufacturers[4]:
echo "あなたが探していた車のメーカーは存在します。";
break;

case $CarManufacturers[5]:
echo "あなたが探していた車のメーカーは存在します。";
break;

default:
echo "あなたが探していた車のメーカーは見つかりませんでした。";
break;

こう見てみると、本当に見にくいですね。

ただ、こういった条件分岐も、もっと綺麗に書くことができます。(笑)

そこは大目にみてください。

さて、とりあえずわかってもらえたと思うのが、いちいち条件分岐をしていくのは、非常に効率が悪いということです。

基本的にコーディングというものは、書く量が少なく、見やすいものが良いとされています。

少なくても、見にくければ、良いコードとは言えないと言われています!

また、たくさんコードを書くことで、ミスをしてしまうことがあると思います。

*人間なので。


実際に「in_array」を使ってみよう!

さて、ここからが本当の意味でのメモになりますが、実際に上で書いたものを、「in_array」で書いてみましょう!

$CarManufacturers = [

"トヨタ",
"日産",
"ホンダ",
"マツダ",
"スズキ",
"三菱" ];

$numcar = "レクサス";

ここまでは、通常の条件分岐と同じになります。

ここから先が大きく変わります!

if (in_array($numcar, $CarManufacturer)) {

echo "あなたが探していた車のメーカーは存在します。";
} else {
echo "あなたが探していた車のメーカーは見つかりませんでした。";
};

どうでしょう。

以前のコードがひどいこともありますが、ものすごく綺麗になりましたね。

また、コードが少ないからといって、見にくいわけでも無いので、非常に良いと思います。

全体のコードとしてはこのようになりました。

$CarManufacturers = [

"トヨタ",
"日産",
"ホンダ",
"マツダ",
"スズキ",
"三菱" ];

$numcar = "レクサス";

if (in_array($numcar, $CarManufacturer)) {
echo "あなたが探していた車のメーカーは存在します。";
} else {
echo "あなたが探していた車のメーカーは見つかりませんでした。";
};


「in_array」の解説

ここからは、実際の細かいところまでの解説を行なっていきたいと思います。

細かい解説とはいっても、バリバリコードを書いている方からしてみると、まだまだ大雑把なところもあると思いますが、お手柔らかにお願いします。

*コメント欄に書いていただけると、メッセージのやりとりができるので、そちらに書いていただけると助かります!


「in_array」の構造

「in_array」はどういう構造になっているのか、僕が最低限意識していることを書いていきたいと思います。

in_array(値1, 値2);

上のコードで説明していきたいと思います。

上のコードの「値1」と「値2」。

こちらの関係性を覚えておけば、とりあえずは使うことができると思います。

「in_array」の場合は、「値1」が「値2」に入っているかどうか、です!

今回の例では、「値1」や「値2」を変数としていましたが、定数でも、数字などのものでも大丈夫です。

ただし気をつけておきたいのは、配列の中身を調べるものなので、「値2」は配列になります!


まとめ

いかがだったでしょうか?

今回は「in_array」を取り上げて、メモがわりにしましたが、この「in_〇〇」という関数は他にもあるので、その都度、メモしていきたいとおもいます!