php取數組交集,php遍歷輸出數組

本文目錄一覽:

PHP數組的幾個操作,求並集,交集,差集,數組

PHP數組的幾個操作,求並集,交集,差集,數組與字符串的相互轉換及數組去重

在php中如果我想要對兩個數組進行如並集、交集和差集操作,我們可直接使用php自帶的函數來操作如array_merge(),array_intersect(),array_diff().

計算數組的合併 array_merge與“+”的區別

array_merge() 函數把兩個或多個數組合併為一個數組。

如果鍵名有重複,該鍵的鍵值為最後一個鍵名對應的值(後面的覆蓋前面的),如果數組是數字索引的,則鍵名會以連續方式重新索引。

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

$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);

//結果依次為:

Array

{

[0]= a

[1]= b

[2]= c

[3]= aa

[4]= 2

[5]= c

}

Array

(

[1] = a

[2] = b

[3] = c

)

要合併的兩個數組中有相同的字符串鍵的時候,使用array_merge()會覆蓋掉原來的值,而使用“+”合併數組則會和用“+”號合併數組相同數字鍵一樣把最先出現的值作為最終結果返回,如下例:

$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);

//結果依次為:

Array

(

[str] = aa

[0] = b

[1] = c

[2] = 2

[3] = c

)

Array

(

[str] = a

[0] = b

[1] = c

)

注:如果想用array_merge合併兩個數組,返回結果可能還會有相同的元素,這時候可以用array_unique()把相同的元素去掉

計算數組的交集

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

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

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

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

還可以通過函數,獲取自己想要的(比如元素不區分大小寫),代碼如下:

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

print_r($intersection);

print_r($intersection2);

//結果依次為:

Array

(

[3] = bmp

)

Array (

[0] = jpg

[3] = bmp

)

計算數組的差集,代碼如下:

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

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

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

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

print_r($difference);

結果為:

Array

(

[0] = jpg

[1] = png

[2] = gif

)

也可以用函數先進行處理,再計算差集

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

語法:array_diff(array1,array2,array3…)

代碼如下:

$difference = array_diff(array_map(‘strtolower’,$old),

array_map(‘strtolower’,$new));

數組轉換為字符串:

?php

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

echo implode(” “,$arr);

?

字符串轉換為數組:

?php

$str=”1432532 ,4444″;

$arr = explode(“,”,$str);

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

print_r($arr);

?

數組元素值去重

?php

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

print_r(

array_unique($a)

);

?

針對有空格的字符串轉換成無空格的字符串

?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;

?

php帶索引檢查計算數組的交集?

array_intersect_assoc

(PHP 4 = 4.3.0, PHP 5, PHP 7)

array_intersect_assoc — 帶索引檢查計算數組的交集

說明

array_intersect_assoc ( array $array1 , array $array2 [, array $… ] ) : array

array_intersect_assoc() 返回一個數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值。注意和 array_intersect() 不同的是鍵名也用於比較。

參數

array1

要檢查的主值。

array2

要比較的數組。

要對比的數組變量的列表。

返回值

返回數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值。

範例

示例 #1 array_intersect_assoc() 例子

“green”, “b” = “brown”, “c” = “blue”, “red”);

$array2 = array(“a” = “green”, “b” = “yellow”, “blue”, “red”);

$result_array = array_intersect_assoc($array1, $array2);

print_r($result_array);

?

PHP兩個數組的交集?

你這個搞得是不是太複雜了。請使用array_diff比較數組,返回不同,再計算交集。

PHP高手請進。把一個三維數組裡的所有二維數組取出來比較,取交集…

//foreach三維,一步步算下去就行

$arr = array(

array(‘a’=’1′,’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 $key=$val)

{

if ($key==0)//第一個先取出來

{

$tmp_arr = $val;

}

else

{

$tmp_arr = array_intersect_assoc($tmp_arr,$val);

}

}

}

print_r($tmp_arr);

php 如何寫一個取一維數組交集的公共方法

array_intersect

(PHP 4 = 4.0.1, PHP 5)

array_intersect — 計算數組的交集說明

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

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

例子 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

)

注: 兩個單元僅在 (string) $elem1 === (string) $elem2 時被認為是相同的。也就是說,當字符串的表達是一樣的時候。

array_diff

(PHP 4 = 4.0.1, PHP 5)

array_diff — 計算數組的差集說明

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

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

例子 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 中多次出現的值同樣對待。

注: 兩個單元僅在 (string) $elem1 === (string) $elem2 時被認為是相同的。也就是說,當字符串的表達是一樣的時候。

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

array_diff_assoc — 帶索引檢查計算數組的差集

說明

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

array_diff_assoc() 返回一個 array,返回一個數組,該數組包括了所有在 array1 中但是不在任何其它參數數組中的值。注意和 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);

?

上面的例子中可以看到鍵值對 “a” = “green” 在兩個數組中都有,因此不在本函數的輸出中。與此不同,鍵值對 0 = “red” 出現在輸出中是因為第二個參數中的 “red” 的鍵名是 1。

鍵值對 key = value 中的兩個值僅在 (string) $elem1 === (string) $elem2 時被認為相等。也就是說使用了嚴格檢查,字符串的表達必須相同。

原創文章,作者:IHLM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/144213.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IHLM的頭像IHLM
上一篇 2024-10-24 15:28
下一篇 2024-10-24 15:28

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python遍歷集合中的元素

    本文將從多個方面詳細闡述Python遍歷集合中的元素方法。 一、for循環遍歷集合 Python中,使用for循環可以遍歷集合中的每個元素,代碼如下: my_set = {1, 2…

    編程 2025-04-29
  • Python去掉數組的中括號

    在Python中,被中括號包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括號。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python如何遍歷字典中的key和value

    本文將詳細講解Python中如何遍歷字典中的key和value,包括多種遍歷方式以及在遍歷過程中的一些應用場景。 一、遍歷字典中的key和value 在Python中,字典是一種無…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python二維數組對齊輸出

    本文將從多個方面詳細闡述Python二維數組對齊輸出的方法與技巧。 一、格式化輸出 Python中提供了格式化輸出的方法,可以對輸出的字符串進行格式化處理。 names = [‘A…

    編程 2025-04-29
  • Java創建一個有10萬個元素的數組

    本文將從以下方面對Java創建一個有10萬個元素的數組進行詳細闡述: 一、基本介紹 Java是一種面向對象的編程語言,其強大的數組功能可以支持創建大規模的多維數組以及各種複雜的數據…

    編程 2025-04-28

發表回復

登錄後才能評論