二维数组中的 PHP 搜索



我开发的程序,获取包含user_id及其技能的用户技能数组,这个数组如下所示:

array(4) {
[17]=>
array(3) {
[0]=>
string(8) "word"
[1]=>
string(10) "power point"
[2]=>
string(28) "excel"
}
[16]=>
array(3) {
[0]=>
string(14) "english
[1]=>
string(14) "french"
[2]=>
string(12) "farsi"
}
}

键是user_id,值是技能数组,现在我想搜索有两个值的user_ids:英语或单词,我希望返回 17、16,我该怎么做?,谢谢你的帮助:)

使用array_intersect函数的解决方案:

$arr = [ 17 => ["word", "power point", "excel"], 16 => ["english", "french", "farsi"] ];
$search_keys = ["english", "word"];
$keys = [];
foreach ($arr as $k => $v) {
if (array_intersect($search_keys, $v)) $keys[] = $k;
}
print_r($keys);

输出:

Array
(
[0] => 17
[1] => 16
)

最新更新