erlchina 发表于 2015-8-27 11:52:03

PHP array_intersect函数

  1.array_intersect函数
  

  




array array_intersect ( array $array1 , array $array2 [, array $ ... ] )

  
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。





Example #1 array_intersect() 例子

<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
?>
这使得 $result 成为:
Array
(
    => green
    => red
)

  
  
  
  2.自我实现的array_intersect()函数比php原函数array_intersect()快五倍
  

  





/**
*
* 自定义的array_intersect
* 如果求的是一维数组的交集这个函数比系统的array_intersect快5倍
*
* @param array $arr1
* @param array $arr2
* @authorLIUBOTAO2010-12-13上午11:40:20
*
*/
function my_array_intersect($arr1,$arr2)
{
    for($i=0;$i<sizeof($arr1);$i++)
    {
      $temp[]=$arr1[$i];
    }
    for($i=0;$i<sizeof($arr1);$i++)
    {
      $temp[]=$arr2[$i];
    }
    sort($temp);
    $get=array();
    for($i=0;$i<sizeof($temp);$i++)
    {
      if($temp[$i]==$temp[$i+1])
         $get[]=$temp[$i];
    }
    return $get;
}
$array1 = array("green", "red", "blue");
$array2 = array("green", "yellow", "red");
echo "<pre>";
print_r(my_array_intersect($array1, $array2));
echo "<pre/>";
  
  
页: [1]
查看完整版本: PHP array_intersect函数