国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php array_intersect比array_diff快(附詳細(xì)的使用說明)

2024-05-04 23:17:59
字體:
供稿:網(wǎng)友
如果要求數(shù)組 $a 與數(shù)組 $b 的差集的個(gè)數(shù),應(yīng)該使用 count($a) - count(array_intersect($a, $b)),而不要用 count(array_diff($a, $b));

前面要比后者快,在大數(shù)組中更為明顯。

1.array_intersect函數(shù)
array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
array_intersect() 返回一個(gè)數(shù)組,該數(shù)組包含了所有在 array1 中也同時(shí)出現(xiàn)在所有其它參數(shù)數(shù)組中的值。注意鍵名保留不變。
#1 array_intersect() 例子

復(fù)制代碼 代碼如下:


<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
?>
這使得 $result 成為:
Array
(
[a] => green
[0] => red
)


2.自我實(shí)現(xiàn)的array_intersect()函數(shù)比php原函數(shù)array_intersect()快五倍

復(fù)制代碼 代碼如下:


/**
*
* 自定義的array_intersect
* 如果求的是一維數(shù)組的交集這個(gè)函數(shù)比系統(tǒng)的array_intersect快5倍
*
* @param array $arr1
* @param array $arr2
* @author LIUBOTAO 2010-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/>";


array_diff — 計(jì)算數(shù)組的差集

array array_diff ( array $array1 , array $array2 [, array $ ... ] )
array_diff() 返回一個(gè)數(shù)組,該數(shù)組包括了所有在 array1 中但是不在任何其它參數(shù)數(shù)組中的值。注意鍵名保留不變。

#1 array_diff() 例子

復(fù)制代碼 代碼如下:


<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
?>


在 $array1 中多次出現(xiàn)的值一樣處理,輸出結(jié)果為:

復(fù)制代碼 代碼如下:


Array
(
[1] => blue
)


Note: 兩個(gè)單元僅在 (string) $elem1 === (string) $elem2 時(shí)被認(rèn)為是相同的。也就是說,當(dāng)字符串的表達(dá)是一樣的時(shí)候。

Note: 注意本函數(shù)只檢查了多維數(shù)組中的一維。當(dāng)然可以用 array_diff($array1[0], $array2[0]); 檢查更深的維度。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 饶阳县| 温宿县| 周宁县| 澜沧| 林甸县| 永寿县| 竹溪县| 蚌埠市| 泸州市| 保德县| 稻城县| 长兴县| 兴文县| 张掖市| 广灵县| 旅游| 彭泽县| 安仁县| 宁津县| 郯城县| 兴海县| 宣城市| 洛川县| 伊吾县| 增城市| 高雄市| 都兰县| 昌图县| 文山县| 芜湖县| 富阳市| 寿光市| 巴林左旗| 建宁县| 财经| 綦江县| 新蔡县| 黔东| 仙游县| 盐源县| 潞西市|