PHP | in_array()で配列・多次元配列のデータから値が存在するか判別する方法

PHP, PHP 配列, PHP 判別

in_array()で配列・多次元配列のデータから値が存在するか判別する方法

PHPのin_array()を利用して、配列・連想配列から特定の値があるかないか存在を確認して判別する方法のサンプルコードです。

また、in_array()は存在確認に便利な関数ですが、存在チェックを実行した結果データの位置などの情報を取得する場合は、array_search()などを利用します。

in_array()で配列から値の存在確認をする

in_array( 検索文字列, 検索対象の配列)

in_array()は検索対象の配列内に検索文字列があるデータが存在した場合TRUEを、存在しなかった場合FALSEを返します。

サンプルコード

in_array()を使って配列から値の存在確認をする簡単なサンプルコードです。

$array = array('apple','grape','pine');

if(in_array( 'apple', $array)){
	echo 'appleとう値を持つデータは存在する';
}else{
	echo 'appleとう値を持つデータは存在しない';
}

多次元配列の特定のキーにある値から存在確認をする

多次元配列の場合、配列をforeach()などの繰り返し文で回さなくても、array_column()を併用することでin_array()を使った値の存在確認を実装する事が可能です。

in_array( 検索文字列,array_column( 検索対象の配列, 検索する配列のキー))

サンプルコード

in_array()を使って多次元配列から値の存在確認をする簡単なサンプルコードです。

多次元配列で連想配列としてキー名を指定していない場合、対象とするキー値を利用します。(サンプルでは0)

<?php
$array = [
	['apple','300'],
	['grape','400'],
	['pine','500']
];

if(in_array( 'apple', array_column( $array, 0))){
	echo 'appleとう値を持つデータは存在する';
}else{
	echo 'appleとう値を持つデータは存在しない';
}

多次元連想配列の場合

多次元連想配列の場合は、array_column()のオプション引数にキー名を指定することで、値の存在判別処理を実装することが可能です。

サンプルではnameがappleのデータが存在するかをチェックしています。

<?php
$array = [
	['name' => 'apple', 'value' => '300'],
	['name' => 'grape', 'value' => '400'],
	['name' => 'pine', 'value' => '500']
];

if(in_array( 'apple', array_column( $array, 'name'))){
	echo 'appleとう値を持つデータは存在する';
}else{
	echo 'appleとう値を持つデータは存在しない';
}

PHP, PHP 配列, PHP 判別

Posted by Yousuke.U