我正在尝试在拥有资源(人员)的应用程序中制作高级搜索过滤器。我在 1 个多维数组中得到了所有结果。该应用程序的用户可以搜索人员的职位名称、技能、工作领域和国家/地区。
我已经完成了查找符合用户给出的标准的人的部分。这些结果存储在多维数组中。如果用户正在寻找具有特定资源、职位和特定技能的人,则返回值如下:
$realfilters = array(2) {
["resourcesWithJobtitle"]=> array(6) {
[0]=> string(1) "1"
[1]=> string(2) "48"
[2]=> string(2) "88"
}
["resourcesWithSkill"]=> array(9) {
[0]=> string(1) "4"
[1]=> string(1) "8"
[2]=> string(1) "48"
[3]=> string(2) "50"
}
当用户还查找工作字段时,这会添加到结果中:
["resourcesWithWorkfield"]=> array(3) {
[0]=> string(2) "48"
[1]=> string(2) "96"
[2]=> string(2) "97"
}
我需要知道哪些资源满足数组的所有维度,以便我可以显示它们。 (所以在这个例子中我需要一个只有 1 个值的数组:48)。我想我需要使用array_intersect
但似乎无法得到正确的结果。
可能的解决方案之一:您可以先extract() http://php.net/manual/en/function.extract.php the $realfilters
数组值赋给变量,然后应用array_intersect()
给他们。但该解决方案仅适用于可能的过滤器不多的情况。
另一种可能是最好的解决方案是在循环中相交,如下所示:
$res_arr = array_shift($realfilters);
foreach($realfilters as $filter){
$res_arr = array_intersect($res_arr, $filter);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)