PHP | 複数の値で配列を検索する方法
PHPのin_array()やarray_intersect()を使って、複数の指定文字で配列を検索して判別する方法の紹介です。
目次
in_array()を使って複数の値で配列を検索
in_array()では、第1引数に指定する文字列や数値の検索値には配列は指定できません。
例えば、in_array()を使って配列を複数の値で検索する場合には、数が少ないという前提であれば複数の条件を書いたif文を記述すれば対応すること可能です。
複数の値が全て含まれているか
if文の複数条件をandにすることで、複数のin_array()の結果が全てtrueであることを確認しています。
$array = array('apple', 'grape', 'pine');
if(in_array( 'apple', $array) && in_array( 'apple', $array)){
echo 'appleとgrape、両方の値を持つデータは存在する';
}else{
echo 'appleとgrape、両方の値を持つデータは存在しない';
}
複数の値のいずれかが含まれているかいづれか
if文の複数条件をorにすることで、複数のin_array()の結果のいずれかがtrueであることを確認しています。
$array = array('apple', 'grape', 'pine');
if(in_array( 'apple', $array) || in_array( 'apple', $array)){
echo 'appleとgrape、いずれかの値を持つデータは存在する';
}else{
echo 'appleとgrape、いずれの値を持つデータは存在しない';
}
array_intersect()を使って複数の値で配列を検索
array_intersect()を利用して複数の値で配列を検索する方法です。
array_intersect()は配列と配列を比較して一致した値で作られた配列を返します。
複数の値が全て含まれているか
検索する値のある配列とarray_intersect()での検索結果の配列(返り値)の数をcount()で取得して比較しています。
$array = array('apple', 'grape', 'pine');
$search = array('apple', 'grape');
if(count($search) == count(array_intersect($search, $array))){
echo 'appleとgrape両方の値を持つデータは存在する';
}else{
echo 'appleとgrape両方の値を持つデータは存在しない';
}
複数の値のいずれかが含まれているか
いずれかが含まれている場合を判別するにはarray_intersect()での検索結果の配列(返り値)の数が0かどうかで判別しています。
$array = array('apple', 'grape', 'pine');
$search = array('apple', 'grape');
if(count(array_intersect($search, $array)) != 0){
echo 'appleとgrape、いずれかの値を持つデータは存在する';
}else{
echo 'appleとgrape、いずれかの値を持つデータは存在しない';
}
ディスカッション
コメント一覧
まだ、コメントがありません