我在php中有两个数组,我使用array_intersect函数来查找公共元素,如果存在常见元素,但问题是有两个常见元素,但我在这里只得到一个元素是我的代码... < / p>
function check_if_exists($company_timings,$in_time) {
$length_of_company=sizeof($company_timings);
$length_of_emp=sizeof($in_time);
for ($i=0; $i <=$length_of_company-1 ; $i++) {
# code...
for ($j=0; $j <=$length_of_emp-1; $j++) {
# code...
if ($in_time[$j]==$company_timings[$i]) {
# code...
$common[]=$company_timings[$i];
return $common;
}
}
}
}
答案 0 :(得分:2)
这样做:
function check_if_exists($company_timings,$in_time) {
$length_of_company=sizeof($company_timings);
$length_of_emp=sizeof($in_time);
for ($i=0; $i <=$length_of_company-1 ; $i++) {
# code...
for ($j=0; $j <=$length_of_emp-1; $j++) {
# code...
if ($in_time[$j]==$company_timings[$i]) {
# code...
$common[]=$company_timings[$i];
}
}
}
if(count($common) > 0){
return $common;
}else{
// Return else;
}
}
或短路:
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);
-- Output --
Array
(
[a] => green
[0] => red
)
答案 1 :(得分:1)
在循环结束后返回公共数组,因为你在循环中返回数据,这就是循环中断的原因......
function check_if_exists($company_timings,$in_time)
{
$length_of_company=sizeof($company_timings);
$length_of_emp=sizeof($in_time);
$common= array();// empty array..
for ($i=0; $i <=$length_of_company-1 ; $i++) {
# code...
for ($j=0; $j <=$length_of_emp-1; $j++) {
# code...
if ($in_time[$j]==$company_timings[$i]) {
# code...
$common[]=$company_timings[$i];
}
}
}
return $common; //return common values..
}