PHP | array_search()で配列・多次元配列のデータを検索する方法

2021-07-08PHP 配列,PHP

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

PHP 配列,PHP

Posted by Yousuke.U