こんにちは。
生まれてこの方、うどん派でしたが、そばの美味しさに気づき始めた裕です。
ややこしい配列操作苦手意識を持っている方も多いと思います。
配列から検索したい時ってありますよね?
そこで今回は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
)
第三引数を設定しないと数値と文字列の「1」を両方同じものとして取ってきます。
では、次は第三引数に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」について、解説しました。
これで配列から値でキーを検索することができますね。
是非使ってみて下さい。