【便利】配列の値を検索するarray_search/_keys/_column
配列の値を検索して、要素番号や配列で返してくれる関数たち。
ソートをかけたいときなど便利なので使い道は色々。演習問題1でも使用。
大きくは配列から検索する場合と連想配列から検索する場合の2つの場合分けがある。
配列の値を検索する方法
array_search(おすすめ度★★☆☆☆)
検索した値の最初の値のインデックスキーのみを返す。
<?php array_search //(検索する値, 検索対象の配列, 型の比較を行うか) ?>
第一引数:検索したい値
第二引数:該当の配列
第三引数:データ型を判定可否(trueを入れるとデータ型もみる)
実行結果:要素番号1つだけが返ってくる
サンプルコード
<?php $frends = ['田中', '樋口', '山本', '小山','田中', '鈴木', '佐藤', '鈴木']; $bestFrendId = array_search('小山', $frends); print_r($bestFrendId); // 実行結果 3 ?>
in_arry(おすすめ度★☆☆☆☆)
これは実行結果に、tureかfalseを返す。それ以外は変わらん。
複数の値を検索する方法
array_keys(おすすめ度★★★☆☆)
検索する値が配列に複数ある場合でも、array_search関数は最初の値のインデックスキーのみを返しました。
全てのインデックスキーを取得したい場合は、array_keys関数を使います。
<?php array_keys(検索対象の配列, 検索する値) ?>
array_search関数やin_array関数と引数の順番が違う点に注意。
検索して見つかった全ての要素番号を配列にして返してくれる。
サンプルコード
<?php $frends = ['田中', '樋口', '山本', '小山','田中', '鈴木', '佐藤', '鈴木']; $suzukiId = array_keys($frends, '鈴木' ); //鈴木だけの配列を作ってくれる! print_r($suzukiId); // 実行結果 Array ( [0] => 5 [1] => 7 ) //つまり、Array (5 ,7 ) と同じ ?>
多次元配列の値を検索する方法
array_column(おすすめ度★★★★☆)
キーを指定して、まとめて配列で返します。
<?php array_column(値を取り出したい多次元配列, キーを指定) ?>
サンプルコード
<?php $array = [ ['area' => '東京都', 'name' => '田中', 'age' => 25, 'sex' => '女性'], ['area' => '神奈川', 'name' => '樋口', 'age' => 10, 'sex' => '女性'], ['area' => '大阪府', 'name' => '山本', 'age' => 16, 'sex' => '女性'], ['area' => '京都府', 'name' => '小山', 'age' => 10, 'sex' => '女性'] ]; $arrayAge = array_column($array, 'age'); //age配列 // 実行結果 Array ( [0] => 25 [1] => 10 [2] => 16 [3] => 10 ) //つまり、Array (25 , 10, 16, 10 ) と同じ ?>
===========
参照記事(ありがとうございました!!)
www.sejuku.netwww.sejuku.net
===========