2016-08-25 71 views
0

我有在PHP兩個陣列和我使用的array_intersect函數來找到公共元素,並且如果公共元素存在我想顯示的論文中共同的元素的索引第一陣列comapring兩個陣列,並返回所述公共元素的索引在PHP

這是我迄今所做..

function check_if_exists($company_timings,$in_time) 


    {  

    $length_of_company=sizeof($company_timings); 
     $length_of_emp=sizeof($in_time); 
     $common=array_intersect($company_timings,$in_time); 
     $length_of_common=sizeof($common); 
     $key=array_search($common,$company_timings); 
     return $key; 


    } 

,但它不是返回鍵有哪些是09:00:00和11:00:00,當共同的元素我通過11:00:00而不是$ common在array_search然後它給出了準確的結果與$ common_array其他明智它不起作用,,,請幫助我改善代碼

回答

0

如果沒有共同的元素被發現該函數返回一個包含共同的元素和它們的兩個陣列中的位置,或false數組:

function check_if_exists($arr1, $arr2) { 
    $combined = array_intersect($arr1, $arr2); 
    if (empty($combined)) 
     return false; 
    $return = array(); 
    foreach ($combined as $elmt) { 
     $return[$elmt] = array(); 
     $return[$elmt]['arr1'] = array_search($elmt, $arr1); 
     $return[$elmt]['arr2'] = array_search($elmt, $arr2); 
    } 
    return $return; 
} 

測試:

$array1 = array('a', 'b', 'c', 'd'); 
$array2 = array('b', 'f', 'g', 'c'); 
$array3 = array('n', 'o', 'p', 'e'); 

$exists = check_if_exists($array1, $array2); 
var_dump($exists); 
$exists_no = check_if_exists($array1, $array3); 
var_dump($exists_no); 

輸出:

array (size=2) 
    'b' => 
    array (size=2) 
     'arr1' => int 1 
     'arr2' => int 0 
    'c' => 
    array (size=2) 
     'arr1' => int 2 
     'arr2' => int 3 

boolean false 
0

試用array_keys功能

這是一個示例代碼。希望它能幫助你。

<?php 
    $a = array("a","b","c"); 
    $b = array("c","d","a"); 
    $c = array_keys(array_intersect($a,$b)); 
    var_dump($c); 
?> 
相關問題