こんにちは。
室内用にブルーライトカットレンズのついたメガネを買おうか迷ってる、裕です!
ややこしい配列操作に苦手意識を持っている方も多いと思います。
配列から検索したい時ってありますよね?
そこで今回はPHP初心者に向けて、
配列の中に、要素があるかをチェックする in_array
について解説します。
ぜひ、読んでみて理解を深めてみて下さいね。
目次
in_arrayの引数を解説
まずin_arrayの基本的な書き方です。
in_array (mixed $needle, array $haystact [, bool $strict = FALSE ] )
needle
配列の中から探したい値。(必須)
haystact
探す対象の配列。(必須)
strict
検索時に厳密な比較を行うかどうかを設定します。
初期値:false
返り値
配列の中から値が見つかった場合はtrueを返します。
それ以外の場合はfalseを返します。
in_arrayの書き方
基本的な検索の仕方
<?php
$array = array(“orange”, “banana”, “apple”, “grape”, “strawberry”, “melon”);
$result = in_array(“orange”, $array);
var_dump($result);
?>
結果は下記になります。
bool(true)
第一引数である「orange」を第二引数の「$array」から検索しました。
「$array」の中に「orange」があるので結果はtrueになります。
厳密に比較する
第三引数を設定せずに検索してみます。
<?php
$array = array(‘1’,2);
$result = in_array(1, $array);
var_dump($result);
?>
結果は下記になります。
bool(true)
第三引数を設定しないと数値と文字列の「1」を両方同じものとして取ってきます。
では、第三引数にtrueを設定して検索してみます。
<?php
$array = array(‘1’,2);
$result = in_array(1, $array, true);
var_dump($result);
?>
結果は下記になります。
bool(false)
第三引数にtrueを設定すると厳密比較(===)を行います。
そのため文字列型 ’1’ と数値型 1 を違うものとして判断されるため false となります。
in_arrayの使用例
配列の中から任意の要素があった場合の処理
<?php
$array = array(“orange”, “banana”, “apple”, “grape”, “strawberry”, “melon”);
$needle = “apple”;
if(in_array($needle, $array)){
$key = array_search($needle, $array);
var_dump($key.’番目のキーに’.$needle.’がありました。’);
}else{
var_dump($needle.’はありません。’);
}
?>
結果は下記になります。
string(45) “2番目のキーにappleがありました。”
In_arrayの結果はtrueかfalseで返されるのでそのまま条件分岐に使うことができます。
配列に「apple」が場合、array_search()を使って「apple」が何番目のキーかを確認しています。
まとめ
いかがでしたか?
今回は配列に指定した値があるかをチェックする
「in_array」について、解説しました。
これで配列から値でキーを検索することができますね。
是非使ってみて下さい。