PHP | array_search()で配列・多次元配列のデータを検索する方法
PHPのarray_search()関数を利用して、配列・連想配列から特定の値があるデータを検索する方法のサンプルコードです。
また、存在確認を目的として実装する場合は、in_array()関数が便利です。
PHP | in_array()で配列・多次元配列のデータから値が存在するか判別する方法 | ONE NOTES
array_search()で配列のデータを検索する
array_search( 検索文字列, 検索対象の配列)
array_search()は検索対象の配列内に検索文字列があるデータが存在した場合は最初に見つかった配列のキー値を返し、存在しなかった場合はFALSEを返します。
サンプルコード
array_search()を使って配列から値の存在確認をする簡単なサンプルコードです。
$array = array('apple','grape','pine');
$key = array_search( 'pine', $array);
print_r($key);
//2
サンプルでは配列から値で検索して最初に見つかったpineがあるキー値2を返しています。
検索する値が配列内に複数存在する場合は、最初に見つかったデータのキー値を返します。
多次元配列のデータから検索する
多次元配列の場合、配列をforeach()などの繰り返し文で回さなくても、array_column()を併用することでarray_search()を使った値の存在確認を実装する事が可能です。
array_search( 検索文字列, array_column( 検索対象の配列, 検索する値))
サンプルコード
array_search()とarray_column()を使って多次元配列から値を検索するサンプルコードです。
多次元配列で連想配列としてキー名を指定していない場合、対象とするキー値を利用します。
$array = [
['apple','300'],
['grape','400'],
['pine','500']
];
$key = array_search( 'pine', array_column( $array, 0));
print_r($key);
//2
多次元連想配列の場合
多次元連想配列の場合は、array_column()のオプション引数にキー名を指定することで、多次元連想配列での検索結果を得ることが可能です。
サンプルではキー名nameがappleのデータが存在するかをチェックしています。
$array = [
['name' => 'apple', 'value' => '300'],
['name' => 'grape', 'value' => '400'],
['name' => 'pine', 'value' => '500']
];
$key = array_search( 'pine', array_column( $array, 'name'));
print_r($key);
//2
ディスカッション
コメント一覧
まだ、コメントがありません