如何做最大数组交集PHP

时间:2015-06-06 11:06:23

标签: php

我问候选人:你喜欢什么?

他的回答是一个数组 [数学,物理,化学,IT,体育]

我有一个清单:

  • 软件分析师:[数学,IT,编程,压力,计算机]

  • 卡车驾驶:[运动,驾驶,旅行,交流]

  • 物理化学老师:[数学,物理,化学,教学]

PHP中使用用户输入获取具有最大公共标记的作业的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您使用array_intersect()查找常用标记,然后比较返回的标记数量。

$jobs = array(
 'software' => array('Math','IT','Programing','Stress','Computer')
 'truck' => array('Sports','Driving','Traveling','Exchange')
 'physic' => array('Math','Physics','Chemistry','Teaching')
);

$user_tags= array('Math','Physics','Chemistry','IT','Sports');
$max_common = 0;
$desired_job = '';

foreach($jobs as $key=>$job) {

 $common = count(array_intersect($job,$user_tags);

 if(max_common < $common) {
    $desired_job = $key;
    $max_common =  $common;
 }

}