【PHP初心者向け】 配列から検索する array_keys

こんにちは。
生まれてこの方、うどん派でしたが、そばの美味しさに気づき始めた裕です。

ややこしい配列操作苦手意識を持っている方も多いと思います。
配列から検索したい時ってありますよね?

そこで今回はPHP初心者に向けて、
配列から指定した値で検索し、見つかった全てのキーを返す array_keys
について解説します。

ぜひ、読んでみて理解を深めてみて下さいね。

array_keysの引数を解説

まずarray_keysの基本的な書き方です。

array_keys (array $array, mixed $search_value [, bool $strict = FALSE ] )

array

返すキーを含む配列(必須)

search_value

検索したいを指定します。

指定した場合、これらの値を含むキーのみを返します。

指定しない場合は、全てのキーを返します。

初期値:null

strict

検索時に厳密な比較を行うかどうかを設定します。

初期値:false

返り値

検索にかかったキーの一覧が配列になって返ってきます。

array_searchの書き方

 

基本的な検索の仕方

まずは、基本的な書き方を紹介します。

<?php

$fruit = array(‘a‘=>’apple’,’b’=>’banana’,’c‘=>’orange’);

$favorite = array_keys($fruit);

print_r($favorite);

?>

結果は下記になります。

Array

(

    [0] => a

    [1] => b

    [2] => c

)

array_keysによって全ての配列のキーが配列として返されました。

検索したい値を指定する

第二引数で検索したい値を指定してキーを検索してみます

<?php

$fruit = array(

    ‘a’=>’apple’,

    ‘b’=>’banana’,

    ‘c’=>’orange’,

    ‘d’=>’grape’,

    ‘e’=>’apple’,

    ‘f’=>’banana’,

    ‘g’=>’apple’

);

$favorite = array_keys($fruit, ‘apple‘);

print_r($favorite);

?>

結果は下記になります。

Array

(

    [0] => a

    [1] => e

    [2] => g

)

値が「apple」を持つ要素のキーが全て返されました。

第二引数を指定した場合、配列の中の第二引数と一致(==で比較)する値を持つキーを全て返します

厳密に比較する

第三引数を設定せずに検索してみます。

<?php

$array = array(

    ‘a’=>1,

    ‘b’=>10,

    ‘c’=>’1’,

);

$result = array_keys($array, 1);

print_r($result);

?>

結果は下記になります。

Array

(

    [0] => a

    [1] => c

)

第三引数を設定しないと数値文字列の「」を両方同じものとして取ってきます。

では、次は第三引数にtrueを設定して検索してみます。

<?php

$array = array(

    ‘a’=>1,

    ‘b’=>10,

    ‘c’=>’1’

);

$result = array_keys($array, 1, true);

print_r($result);

?>

結果は下記になります。

Array

(

    [0] => a

)

第二引数で指定した通り、数値型の「1」のみを検索してきています。

この場合、厳密比較(===)により検索されています

まとめ

 

いかがでしたか?

今回は配列に指定した値を配列から検索し、その値を持つキーを全て返す

array_keys」について、解説しました。

これで配列から値でキーを検索することができますね。

是非使ってみて下さい。