给定以下二维数组:
$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;
如果我想要按两个值进行搜索,我只能想到以下的方法:
$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”和姓名为“Bob”的组合,并且只有当该组合存在时才获取其索引?有比我想出来的更好的方法吗?
array_intersect_assoc($search, $v)
更安全,对吧 @Cas? - mickmackusaarray_intersect_assoc()
,但不确定是否能获得更高效或更安全的结果,因为最终比较决定了项目是否存在,而没有正确的键,比较将返回false
,无论交集中的值如何。 - Casimir et Hippolytearray_intersect(['50', 'Bob', 'score'=>'50', 'name'=>'Bob'],['score' => '50', 'name' => 'Bob'])
。 - Casimir et Hippolyte