PHPで一度に複数の値によって多次元配列を検索するには?

S.Mason:

以下の2次元配列を考えます:

$data_info_array = array( 
array( 
    'score'   => '100', 
    'name'    => 'Alice', 
    'subject' => 'Data Structures'
), 
array( 
    'score'   => '50', 
    'name'    => 'Bob', 
    'subject' => 'Advanced Algorithms'
), 
array( 
    'score'   => '75', 
    'name'    => 'Charlie', 
    'subject' => 'Distributed Computing'
) 
); 

// this gets the key when I search for the score of 50 from one column
$index = array_search('50', array_column($data_info_array, 'score')); 
echo $index; 

私は2つの値で検索したい場合は私だけのようなものを考えることができます。

 $index1 = array_search('50', array_column($data_info_array, 'score')); 
 $index2 = array_search('Bob', array_column($data_info_array, 'name')); 
 $real_index = ( $index1 === $index2 ) ? $index1 : null; 

私は一緒に「50」のスコアと「ボブの名前を検索し、そのコンボが存在する場合にのみ、それにインデックスを得ることができる方法はありますか?私が作ってみたものよりもしますか良い方法はありますか?

カシミールとイポリット:

あなたは配列として検索クエリを構築し、それを各項目の交差点を比較することができます。

$search = ['score' => '50', 'name' => 'Bob'];

foreach($data_info_array as $k => $v) {
    if ( $search === array_intersect($v, $search) ) {
        echo $k;
        break;
    }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=28378&siteId=1