比较两个数组并返回php中公共元素的索引


comapring two arrays and return the index of the common element in php

我在PHP中有两个数组我使用array_intersect函数来查找公共元素如果存在公共元素我想显示第一个数组中这些公共元素的索引

这是我到目前为止所做的……

  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,当我在array_search中传递11:00:00而不是$common时,它会给出准确的结果,否则使用$common_array就不起作用了,请帮助我改进代码

此函数返回一个数组,其中包含两个数组中的公共元素及其位置,如果没有找到公共元素,则返回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;
}

Test:

$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

Try with array_keys function

下面是一个示例代码。希望对你有帮助。

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