php如何刪除兩個陣列中相同的元素

2021-09-04 02:30:27 字數 3401 閱讀 3133

1樓:匿名使用者

$a=[1,2,3];

$b=[2,3,4];

$c=array_diff($a,$b);//[1]$d=array_merge(array_diff($a,$b),array_diff($b,$a));//[1,4]

var_dump($c,$d);

2樓:一騎當後

如何去除陣列中相同的元素?在php手冊中有這樣寫

array_unique(php 4 >= 4.0.1)

array_unique -- 移除陣列中重複的值

說明array array_unique ( array array)

array_unique() 接受 array 作為輸入並返回沒有重複值的新陣列。

注意鍵名保留不變。array_unique() 先將值作為字串排序,然後對每個值只保留第乙個遇到的鍵名,接著忽略所有後面的鍵名。這並不意味著在未排序的 array 中同乙個值的第乙個出現的鍵名會被保留。

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

第乙個單元將被保留。

例子 1. array_unique() 例子

<?php

$input = array ("a" => "green", "red", "b" => "green", "blue", "red");

$result = array_unique ($input);

print_r($result);

?>

3樓:ms中文網

首先,我看到這個問題中描述是「如何刪除兩個陣列中相同的元素」,雖然那個人寫了一大堆,竟然用的是array_unique(),從分析到給出的demo一直在解決如何刪除「乙個」陣列中「重複」的元素。汗!答非所問的答案竟然會被採納。

這裡,簡單分析一下提問者的真實意圖,分以下2種情況:

1.現在有2個一維陣列, $arr1和$arr2,現在要刪除 $arr1 中存在於 $arr2 的元素。

解決方案:使用array_diff對比返回在 array1 中但是不在 array2 及任何其它引數陣列中的值,**如下:

<?php

$arr1 = array(1, 2, 3, 4);

$arr2 = array(2, 4);

//這一句即可

$arr1 = array_diff($arr1,$arr2);

var_dump($arr1);

2.先宣告一下,我看了lt318025大神給出的答案,他的思維非常活躍,已經分了2種情況。

現在有2個一維陣列,$a和$b,即刪除$a中存在於$b的元素,刪除$b中$a存在的元素,組後合併返回。

可是lt318025大神用的php版本太高,給出的demo在低版本php下執行失敗,這裡修正一下:

<?php

$a=array(1,2,3);

$b=array(2,3,4);

//得到存在於$a但不存在於$b中的元素組成的陣列

$c=array_diff($a,$b);

//這裡簡單求出在$a但不在$b中的元素

var_dump($c);

//得到存在於$a但不存在於$b中的元素組成的陣列與存在於$b但不存在於$a中的元素組成的陣列的並集

$d=array_merge(array_diff($a,$b),array_diff($b,$a));

//這裡徹底剔除了同時存在於$a和$b中的元素

var_dump($d);

究竟是哪一種情況,這需要看提問者的需求了。

4樓:清風之無痕歲月

<?php

$a=array("第一"=>12,"第二"=>23,34,45);

$b=array("第一"=>11,"第二"=>22,33,45);

foreach ($a as $key=>$v1) }}print_r($a);

print_r($b);

?>

php如何統計乙個陣列中相同元素的個數

5樓:走近植物世界

簡單的迴圈即可,選出重複(出現次數大於等於2)的元素並統計每個重複元素出現的次數:

php中的 array_count_values() 函式可以實現

array_count_values() 函式用於統計陣列中所有值出現的次數。

本函式返回乙個陣列,其元素的鍵名是原陣列的值,鍵值是該值在原陣列中出現的次數。

array_count_values(array)

例如:<?php

$a=array("cat","dog","horse","dog");

print_r(array_count_values($a));

輸出:array ( [cat] => 1 [dog] => 2 [horse] => 1 )

擴充套件資料:

php統計陣列元素個數

count():對陣列中的元素個數進行統計;

sizeof():和count()具有同樣的用途,這兩個函式都可以返回陣列元素個數,得到乙個常規標量變數中的元素個數。

如果傳遞給這個函式的陣列是乙個空陣列,或者是乙個沒有經過設定的變數,返回的陣列元素個數就是0;

array_count_value():統計每個特定的值在陣列$array中出現過的次數;

如:$array=array(4,5,1,2,3,1,2,1);

$ac=array_count_value($array);

將建立乙個名為$ac陣列,該陣列包括:

關鍵字       值

4          1

5          1

1          3

2          2

3          1

6樓:睡著的糖葫蘆

迴圈 要統計的陣列$a, 把要統計的值 放入另乙個陣列中$b, 判斷如果$b中 有這個值,就加1.

7樓:宇宙大師之一

php 中的 array_count_values() 函式可以實現

array_count_values() 函式用於統計陣列中所有值出現的次數。

本函式返回乙個陣列,其元素的鍵名是原陣列的值,鍵值是該值在原陣列中出現的次數。

array_count_values(array)

例如:<?php

$a=array("cat","dog","horse","dog");

print_r(array_count_values($a));

?>

輸出:array ( [cat] => 1 [dog] => 2 [horse] => 1 )

一列由兩個數組成的陣列1,11,

1 把這一陣列分為若干欄,n欄到 n,n 結束 因為 1 13 13 2 91,也就是到第13欄結束是91組數,還有9組數,應是第14欄的第9組數,因此第14欄的第9組數是 9,14 和為9 14 23 2 因為 1 10 10 2 55,因此前55組數應從 1,1 開始到 10,10 結束,因此有...

linushell怎樣比較兩個陣列的內容並且把不同

你這程式沒問題啊,執行不成功嗎?linux 寫乙個shell指令碼,實現功能比較a和b兩個檔案的差異,以b檔案為主,把差異的部分同步到b檔案 有個比較簡陋的命令可以完成 diff a b grep b 缺點是會把 這個符號帶入b linux shell中關於兩個檔案的部分內容替換的問題,詳情如下 這...

excel中如何比較兩個數的大小。

計算差即可。1 新建excel 2 在單元格a1中輸入 power 3,6 在單元格a2中輸入 power 5,4 3 在單元格a3中輸入 a1 a2 後回車,從輸出的a1 a2的值即可得到兩個資料的大小關係。if a1 b1,一致 if abs a1 b1 差大於 差小於等於 假如兩個數分別在a1...