成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

php獲取兩個(gè)數(shù)據(jù)的交集,php求數(shù)組交集

php大數(shù)組怎么求交集

在PHP中求數(shù)組的交集,我們可以與PHP給我們提供的現(xiàn)成函數(shù):array_intersect(),其用法格式為:

成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)為企業(yè)提供興安網(wǎng)站建設(shè)、興安做網(wǎng)站、興安網(wǎng)站設(shè)計(jì)、興安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、興安企業(yè)網(wǎng)站模板建站服務(wù),十多年興安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

array array_intersect(array array1,array array2[,arrayN…])

根據(jù)上述的語(yǔ)法格式,我們來(lái)寫(xiě)一個(gè)例子:

1 ?php

2 $fruit1 = array("Apple","Banana","Orange");

3 $fruit2 = array("Pear","Apple","Grape");

4 $fruit3 = array("Watermelon","Orange","Apple");

5 $intersection = array_intersect($fruit1, $fruit2, $fruit3);

6 print_r($intersection);

7 // 輸出結(jié)果:

8 // Array ( [0] = Apple )

9 ?

本例子將返回在$fruit1數(shù)組中出現(xiàn)且在$fruit2和$fruit3中也出現(xiàn)的所有水果的名子。

使用array_intersect()函數(shù)時(shí)要注意:只有在兩個(gè)元素相等且具有相同的數(shù)據(jù)類(lèi)型時(shí),array_intersect()函數(shù)才會(huì)認(rèn)

為它們是相同的,否則不能進(jìn)行交集計(jì)算。array_intersect()函數(shù)返回一個(gè)保留了鍵的數(shù)組,只由第一個(gè)數(shù)組中出現(xiàn)的且在其它數(shù)組中都出現(xiàn)的

值組成。

若要求關(guān)聯(lián)數(shù)組的交集,請(qǐng)使用array_intersect_assoc()函數(shù),給你個(gè)簡(jiǎn)單的例子:

1 ?php

2 $fruit1 = array("red"="Apple","yellow"="Banana","orange"="Orange");

3 $fruit2 = array("yellow"="Pear","red"="Apple","purple"="Grape");

4 $fruit3 = array("green"="Watermelon","orange"="Orange","red"="Apple");

5 $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);

6 print_r($intersection);

7 // 輸出:

8 // Array ( [red] = Apple )

9 ?

array_intersect_assoc()函數(shù)語(yǔ)法格式如下:

array array_intersect_assoc(array array1,array array2[,arrayN…])

array_intersect_assoc()與array_intersect()基本相同,只不過(guò)他在比較中還考慮了數(shù)組的鍵。因此,只有在第一個(gè)數(shù)組中出現(xiàn),且在所有其他輸入數(shù)組中也出現(xiàn)的鍵/值對(duì)才返回到結(jié)果數(shù)組中。

php 如何寫(xiě)一個(gè)取一維數(shù)組交集的公共方法

array_intersect

(PHP 4 = 4.0.1, PHP 5)

array_intersect -- 計(jì)算數(shù)組的交集說(shuō)明

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

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

例子 1. array_intersect() 例子

?php

$array1 = array ("a" = "green", "red", "blue");

$array2 = array ("b" = "green", "yellow", "red");

$result = array_intersect ($array1, $array2);

?

這使得 $result 成為:

Array

(

[a] = green

[0] = red

)

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

array_diff

(PHP 4 = 4.0.1, PHP 5)

array_diff -- 計(jì)算數(shù)組的差集說(shuō)明

array array_diff ( array array1, array array2 [, array ...])

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

例子 1. array_diff() 例子

?php

$array1 = array ("a" = "green", "red", "blue", "red");

$array2 = array ("b" = "green", "yellow", "red");

$result = array_diff ($array1, $array2);

?

這使得 $result 成為 array (1 = "blue");。在 $array1 中多次出現(xiàn)的值同樣對(duì)待。

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

注: 注意此函數(shù)僅檢查多維數(shù)組中的一維。當(dāng)然你可以用 array_diff($array1[0], $array2[0]); 檢查更深的維度。

array_diff_assoc -- 帶索引檢查計(jì)算數(shù)組的差集

說(shuō)明

array array_diff_assoc ( array array1, array array2 [, array ...])

array_diff_assoc() 返回一個(gè) array,返回一個(gè)數(shù)組,該數(shù)組包括了所有在 array1 中但是不在任何其它參數(shù)數(shù)組中的值。注意和 array_diff() 不同的是鍵名也用于比較。

例子 1. array_diff_assoc() 例子

?php

$array1 = array ("a" = "green", "b" = "brown", "c" = "blue", "red");

$array2 = array ("a" = "green", "yellow", "red");

$result = array_diff_assoc($array1, $array2);

?

上面的例子中可以看到鍵值對(duì) "a" = "green" 在兩個(gè)數(shù)組中都有,因此不在本函數(shù)的輸出中。與此不同,鍵值對(duì) 0 = "red" 出現(xiàn)在輸出中是因?yàn)榈诙€(gè)參數(shù)中的 "red" 的鍵名是 1。

鍵值對(duì) key = value 中的兩個(gè)值僅在 (string) $elem1 === (string) $elem2 時(shí)被認(rèn)為相等。也就是說(shuō)使用了嚴(yán)格檢查,字符串的表達(dá)必須相同。

PHP兩個(gè)數(shù)組的交集?

你這個(gè)搞得是不是太復(fù)雜了。請(qǐng)使用array_diff比較數(shù)組,返回不同,再計(jì)算交集。

php 取交集

//foreach三維,一步步算下去就行¥arr?。健rray(array('a'=>'1'ycg'b'=>'2''c'=>'5','d'=>'56'),array('a'=>'1','c'=>'5','d'=>'56'),array('a'=>'1','c'=>'5','e'=>'44')array('a'=>'1','c'=>'5','d'=>'56','f'=>'d'));if (count(¥arr)>0){ foreach(¥arr as?。ey=>¥val) {if?。ǎey==0)//第一個(gè)先取出來(lái){?。mp_arr?。健。al;}else{?。mp_arr?。健rray_intersect_assoc(¥tmp_arr,¥val);}?。齪rint_r(¥tmp_arr);

PHP數(shù)組的幾個(gè)操作,求并集,交集,差集,數(shù)組

PHP數(shù)組的幾個(gè)操作,求并集,交集,差集,數(shù)組與字符串的相互轉(zhuǎn)換及數(shù)組去重

在php中如果我想要對(duì)兩個(gè)數(shù)組進(jìn)行如并集、交集和差集操作,我們可直接使用php自帶的函數(shù)來(lái)操作如array_merge(),array_intersect(),array_diff().

計(jì)算數(shù)組的合并 array_merge與“+”的區(qū)別

array_merge() 函數(shù)把兩個(gè)或多個(gè)數(shù)組合并為一個(gè)數(shù)組。

如果鍵名有重復(fù),該鍵的鍵值為最后一個(gè)鍵名對(duì)應(yīng)的值(后面的覆蓋前面的),如果數(shù)組是數(shù)字索引的,則鍵名會(huì)以連續(xù)方式重新索引。

注釋:如果僅僅向 array_merge() 函數(shù)輸入了一個(gè)數(shù)組,且鍵名是整數(shù),則該函數(shù)將返回帶有整數(shù)鍵名的新數(shù)組,其鍵名以 0 開(kāi)始進(jìn)行重新索引.代碼如下:

$a = array(1 = 'a', 'b', 'c');

$b = array(1 = 'aa', 2, 'c');

$union = array_merge($a, $b);

$plus = $a + $b;

print_r($union);

print_r($plus);

//結(jié)果依次為:

Array

{

[0]= a

[1]= b

[2]= c

[3]= aa

[4]= 2

[5]= c

}

Array

(

[1] = a

[2] = b

[3] = c

)

要合并的兩個(gè)數(shù)組中有相同的字符串鍵的時(shí)候,使用array_merge()會(huì)覆蓋掉原來(lái)的值,而使用“+”合并數(shù)組則會(huì)和用“+”號(hào)合并數(shù)組相同數(shù)字鍵一樣把最先出現(xiàn)的值作為最終結(jié)果返回,如下例:

$a2 = array('str' = 'a', 'b', 'c');

$b2 = array('str' = 'aa', 2, 'c');

$union2 = array_merge($a2, $b2);

$plus2 = $a2 + $b2;

print_r($union2);

print_r($plus2);

//結(jié)果依次為:

Array

(

[str] = aa

[0] = b

[1] = c

[2] = 2

[3] = c

)

Array

(

[str] = a

[0] = b

[1] = c

)

注:如果想用array_merge合并兩個(gè)數(shù)組,返回結(jié)果可能還會(huì)有相同的元素,這時(shí)候可以用array_unique()把相同的元素去掉

計(jì)算數(shù)組的交集

array_intersect() 函數(shù)返回兩個(gè)或多個(gè)數(shù)組的交集數(shù)組,結(jié)果數(shù)組包含了所有在被比較數(shù)組中,也同時(shí)出現(xiàn)在所有其他參數(shù)數(shù)組中的值,鍵名保留不變,注釋:僅有值用于比較,代碼如下:

$a = array('jpg','png','gif','bmp');

$b = array('JPG','txt','docx','bmp');

$intersection = array_intersect($a, $b);

還可以通過(guò)函數(shù),獲取自己想要的(比如元素不區(qū)分大小寫(xiě)),代碼如下:

$intersection2 = array_intersect(array_map('strtolower',$a), array_map('strtolower',$b));

print_r($intersection);

print_r($intersection2);

//結(jié)果依次為:

Array

(

[3] = bmp

)

Array (

[0] = jpg

[3] = bmp

)

計(jì)算數(shù)組的差集,代碼如下:

$old = array('jpg','png','gif','bmp');

$new = array('JPG','txt','docx','bmp');

$difference = array_diff($old, $new);

注:返回結(jié)果的元素包含$old的元素,不包括$new的元素

print_r($difference);

結(jié)果為:

Array

(

[0] = jpg

[1] = png

[2] = gif

)

也可以用函數(shù)先進(jìn)行處理,再計(jì)算差集

array_diff() 函數(shù)返回兩個(gè)數(shù)組的差集數(shù)組。該數(shù)組包括了所有在被比較的數(shù)組中,但是不在任何其他參數(shù)數(shù)組中的鍵值,在返回的數(shù)組中,鍵名保持不變。

語(yǔ)法:array_diff(array1,array2,array3...)

代碼如下:

$difference = array_diff(array_map('strtolower',$old),

array_map('strtolower',$new));

數(shù)組轉(zhuǎn)換為字符串:

?php

$arr = array('Hello','World!','I','love','Shanghai!');

echo implode(" ",$arr);

?

字符串轉(zhuǎn)換為數(shù)組:

?php

$str="1432532 ,4444";

$arr = explode(",",$str);

echo count($arr)."/br";

print_r($arr);

?

數(shù)組元素值去重

?php

$a=array("a"="red","b"="green","c"="red");

print_r(

array_unique($a)

);

?

針對(duì)有空格的字符串轉(zhuǎn)換成無(wú)空格的字符串

?php

$str="1432532 ,67878";

$arr = explode(",",$str);

//echo count($arr)."/br";

$str_u='';

for($i=0;$icount($arr);$i++)

{

$str_u .=trim($arr[$i]).',';

}

echo $str_u;

?

當(dāng)前題目:php獲取兩個(gè)數(shù)據(jù)的交集,php求數(shù)組交集
文章來(lái)源:http://jinyejixie.com/article4/dseccie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、小程序開(kāi)發(fā)、品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站建設(shè)微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
利辛县| 岳阳市| 福安市| 安福县| 太湖县| 阿勒泰市| 临潭县| 黄浦区| 东明县| 张家界市| 英吉沙县| 阿拉善右旗| 桂林市| 和平区| 涿鹿县| 盐津县| 北川| 拜城县| 荆门市| 泰顺县| 伽师县| 北安市| 兴义市| 松原市| 通城县| 塔城市| 西丰县| 沙坪坝区| 太仆寺旗| 江门市| 凤冈县| 平凉市| 宁津县| 宣恩县| 柳江县| 延津县| 化州市| 自贡市| 瑞丽市| 株洲市| 渑池县|