當前位置:首頁 » 編程語言 » php取數組交集

php取數組交集

發布時間: 2022-03-07 15:13:31

php數組如何根據相同值再分組

這個答案是錯誤的!請及時認清。我想問一下答主你是這么想的?

請查考下面的這些PHP函數
統計:
array_count_values 統計數組中所有的值出現的次數
array_proct 計算數組中所有值的乘積
array_sum 計算數組中所有值的和
count 計算數組中的單元數目或對象中的屬性個數
sizeof count() 的別名

搜索:
array_key_exists 檢查給定的鍵名或索引是否存在於數組中
array_search 在數組中搜索給定的值,如果成功則返回相應的鍵名
in_array 檢查數組中是否存在某個值

排序:
array_multisort 對多個數組或多維數組進行排序
arsort 對數組進行逆向排序並保持索引關系
asort 對數組進行排序並保持索引關系
krsort 對數組按照鍵名逆向排序
ksort 對數組按照鍵名排序
natcasesort 用「自然排序」演算法對數組進行不區分大小寫字母的排序
natsort 用「自然排序」演算法對數組排序
rsort 對數組逆向排序
sort 對數組排序
uasort 使用用戶自定義的比較函數對數組中的值進行排序並保持索引關聯
uksort 使用用戶自定義的比較函數對數組中的鍵名進行排序
usort 使用用戶自定義的比較函數對數組中的值進行排序
shuffle 將數組打亂

交集:
array_intersect_assoc 帶索引檢查計算數組的交集
array_intersect_key 使用鍵名比較計算數組的交集
array_intersect_uassoc 帶索引檢查計算數組的交集,用回調函數比較索引
array_intersect_ukey 用回調函數比較鍵名來計算數組的交集
array_intersect 計算數組的交集
array_key_exists 用回調函數比較鍵名來計算數組的交集
array_uintersect_assoc 帶索引檢查計算數組的交集,用回調函數比較數據
array_uintersect 計算數組的交集,用回調函數比較數據

差集:
array_udiff_assoc 帶索引檢查計算數組的差集,用回調函數比較數據
array_udiff_uassoc 帶索引檢查計算數組的差集,用回調函數比較數據和索引
array_udiff 用回調函數比較數據來計算數組的差集
array_diff_assoc 帶索引檢查計算數組的差集
array_diff_key 使用鍵名比較計算數組的差集
array_diff_uassoc 用用戶提供的回調函數做索引檢查來計算數組的差集
array_diff_ukey 用回調函數對鍵名比較計算數組的差集
array_diff 計算數組的差集

獲取數組的部分內容:
array_chunk 將一個數組分割成多個
array_filter 用回調函數過濾數組中的單元
array_keys 返回數組中所有的鍵名
array_slice 從數組中取出一段
array_values 返回數組中所有的值

加工出所需數組:
array_combine 創建一個數組,用一個數組的值作為其鍵名,另一個數組的值作 為其值
array_fill 用給定的值填充數組
array_flip 交換數組中的鍵和值
array_map 將回調函數作用到給定數組的單元上
array_merge_recursive 遞歸地合並一個或多個數組
array_merge 合並一個或多個數組
array_pad 用值將數組填補到指定長度
array_push 將一個或多個單元壓入數組的末尾(入棧)
array_reverse 返回一個單元順序相反的數組
array_shift 將數組開頭的單元移出數組
array_splice 把數組中的一部分去掉並用其它值取代
array_unique 移除數組中重復的值
array_unshift 在數組開頭插入一個或多個單元
array_walk_recursive 對數組中的每個成員遞歸地應用用戶函數
array_walk 對數組中的每個成員應用用戶函數
compact 建立一個數組,包括變數名和它們的值
range 建立一個包含指定范圍單元的數組

單元:
array_pop 將數組最後一個單元彈出(出棧)
array_rand 從數組中隨機取出一個或多個單元
current 返回數組中的當前單元
pos current() 的別名
each 返回數組中當前的鍵/值對並將數組指針向前移動一步
end 將數組的內部指針指向最後一個單元
key 返回數組中當前單元的鍵名
list 把數組中的值賦給一些變數
next 將數組中的內部指針向前移動一位
prev 將數組的內部指針倒回一位
reset 將數組的內部指針指向第一個單元

其他:
array_rece 用回調函數迭代地將數組簡化為單一的值
extract 從數組中將變數導入到當前的符號表
array 新建一個數組

② 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高手請進。把一個三維數組里的所有二維數組取出來比較,取交集...

//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數組的幾個操作,求並集,交集,差集,數組

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;$i<count($arr);$i++)
{

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

}
echo $str_u;
?>

⑤ php取數組成員數

count($array)或者sizeof($array)都可以

⑥ php 求這樣的兩個數組的特殊交集,看似簡單其實不然

<?php
$result = array();
foreach($y as $value){
$result[] = array($value,test($x,$value));
}
function test($x,$b){
foreach($x as $value){
if($value[0] == $b)
return $value[1];
}
return 0;
}
?>

⑦ 如何獲取兩個數組中的交集 - 技術問答

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() 例子= array(\"a\" => \"green\", \"red\", \"blue\");$array2 = array(\"b\" => \"green\", \"yellow\", \"red\");$result = array_intersect($array1, $array2);?>

⑧ php大數組怎麼求交集

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

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

根據上述的語法格式,我們來寫一個例子:

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 // 輸出結果:
8 // Array ( [0] => Apple )
9 ?>

本例子將返回在$fruit1數組中出現且在$fruit2和$fruit3中也出現的所有水果的名子。

使用array_intersect()函數時要注意:只有在兩個元素相等且具有相同的數據類型時,array_intersect()函數才會認
為它們是相同的,否則不能進行交集計算。array_intersect()函數返回一個保留了鍵的數組,只由第一個數組中出現的且在其它數組中都出現的
值組成。

若要求關聯數組的交集,請使用array_intersect_assoc()函數,給你個簡單的例子:

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()函數語法格式如下:

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

array_intersect_assoc()與array_intersect()基本相同,只不過他在比較中還考慮了數組的鍵。因此,只有在第一個數組中出現,且在所有其他輸入數組中也出現的鍵/值對才返回到結果數組中。

⑨ 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 時被認為相等。也就是說使用了嚴格檢查,字元串的表達必須相同。

熱點內容
獲取android簽名 發布:2025-01-13 13:40:21 瀏覽:594
單片機編譯器和驅動 發布:2025-01-13 13:31:33 瀏覽:439
tis伺服器怎麼進pe 發布:2025-01-13 13:31:02 瀏覽:276
android線程與線程通信 發布:2025-01-13 13:30:27 瀏覽:38
FTP伺服器本地策略 發布:2025-01-13 13:20:47 瀏覽:485
地下城堡2掛機腳本 發布:2025-01-13 13:20:44 瀏覽:205
web雲伺服器配置 發布:2025-01-13 13:19:54 瀏覽:459
小康密碼是多少 發布:2025-01-13 13:19:13 瀏覽:41
javafile類 發布:2025-01-13 13:19:08 瀏覽:84
c語言求逆 發布:2025-01-13 13:14:43 瀏覽:930