PHP

【PHPの基礎】配列中の要素検索するarray_search関数をマスターしよう!

array_search関数
今回解決できる内容!

✔️array_search関数とは

✔️array_search関数の使い方

今回はarray_search関数について説明します!

関数に関しては下記の記事を参考にして下さい。

関数
【PHPの基礎】関数をマスターしよう! 今回解決できる内容! ✔️関数とはなんだろう? ✔️関数の使い方は? ...

「独学でツラくなった方」はこちらをご覧ください!

【基礎編】array_search関数とは

array_search関数とは、配列の中に検索した要素があるかどうかを調べる関数です。

返り値は、値が配列内に存在する場合はそのキーを返し、それ以外の場合はfalseを返します。

返り値に関しては下記の記事を参考にして下さい

四捨五入
【PHPの基礎】返り値をマスターしよう! 今回解決できる内容! ✔️返り値とは? ✔️返り値の使い方は? ...

関数の書き方は下記の通りです。

array_search(検索対象の値, 検索対象の配列 [, 型の比較を行うかどうか]);

第1引数には検索したい値、第2引数には検索する配列、第3引数にはの比較までを行うどうかをboolean型でしてします。

第3引数は省略可能です!

型に関しては下記の記事を参考にして下さい。

【PHPの基礎】変数、型の種類をマスターしよう! 今回解決できる内容! ✔️変数って聞いたことあるけど、何だっけ? ✔️変...

【基礎編】array_search関数の使い方

実際の使い方を確認してみましょう!

サンプルコード

<?php 

$sports=['tennis','baseball','football','basketball'];

$result=array_search('baseball',$sports);

var_dump($result);

?>

結果は下記の通りです。

コード解説

$sportsの配列の中に、「baseball」の要素があるかを確認するコードになっています。

「baseball」要素が存在する場合は、キーが返されます。

今回「baseball」は$sports配列の「1」に位置している為、返り値として「1」が返されます。

次は大文字と小文字が判別できるか確認してみましょう!

サンプルコード

<?php 

$sports=['tennis','baseball','football','basketball'];

$result=array_search('BASEBALL',$sports);

var_dump($result);

?>

結果は下記の通りです。

コード解説

先ほど使用した$sport配列を再度使用しております。検索対象の要素を「baseball」から「BASEBALL」に変更しました。

結果は「false」が返ってきました。

つまり、array_search関数は要素を検索する際は、大文字小文字を区別します

次は第3引数として型の比較をする場合を確認してみましょう!

サンプルコード

<?php 

$number=['1','2','3','4'];

$result=array_search(1,$number,true);

var_dump($result);

?>

結果は下記の通りです。

コード解説

$numberの配列の中に、「1」の要素があるかを確認するコードになっています。また、第3引数がtrueになっている為、型の比較も行います。

$numberには「1」の要素はありますが、文字列である為、検索要素の「1」(整数型)とは異なります。

よって、falseが返り値として返されます。

【応用編】array_search関数で連想配列の検索

array_search関数は連想配列での要素検索も可能です。

下記のコードで確認してみましょう!

サンプルコード

<?php 

$sports=['テニス'=>'tennis','野球'=>'baseball','サッカー'=>'soccer'];

$result=array_search('soccer',$sports);

var_dump($result);

?>

結果は下記の通りです。

コード解説

$sportsの配列の中に、「soccer」の要素があるかを確認するコードになっています。

要素の中に「soccer」が存在する為、その要素のキーである「サッカー」が返り値として返されます。

【応用編】複数の値を検索する場合

複数の値を検索したい場合は、array_keys関数を使います。

array_keys関数は、検索して見つかった全てのインデックスキーを配列にして返してくれます

実際の例を確認してみましょう!

サンプルコード

<?php

$array=['tennis','baseball','soccer','tennis'];

$array_keys=array_keys($array,'tennis');

var_dump($array_keys);

?>

結果は下記の通りです。

コード解説

配列「$array」の要素から「tennis」を検索するコードになります。

見つかったキーである「0」と「3」が配列として返されていることがわかります。

array_keys関数の詳細は下記の記事を参考にして下さい!

【PHPの基礎】配列のキーを取得するarray_keys関数をマスターしよう! 今回解決できる内容! ✔️array_keys関数とは? ✔️array...

独学でツラくなった方へ

まとめ

今回説明した内容

✅array_search関数の使い方

✅連想配列の検索方法

今回は以上になります。

是非実際の開発での活用してマスターしていきましょう!

配列における組み込み関数のまとめは下記の記事を参考にして下さい!

配列における組み込み関数
【PHPの基礎】PHPの配列における組み込み関数のまとめ!(追加|検索|結合|要素数|キーの存在) 今回解決できる内容 ✔️PHPの配列における組み込み関数を知りたい! 今回は配列における組み込み関...