PHP 數組之間的比較方法:

array_diff() - 比較數組的鍵值,返回差集構成的數組;
array_diff_key() - 比較數組的鍵名,返回差集構成的數組;
array_diff_assoc() - 比較數組的鍵名和鍵值,返回差集構成的數組;
array_intersect() - 比較數組的鍵值,返回交集構成的數組;
array_intersect_key() - 比較數組的鍵名,返回交集構成的數組;
array_intersect_assoc() - 比較數組的鍵名和鍵值,返回交集構成的數組;


array_diff()

比較數組之間的鍵值,返回差集;

基礎語法:

array array_diff(array $array_1,array $array_2......);

array - 返回的數組,由 array_1 中,同其他數組鍵值不相同的元素構成;
array_1 - 參與比較的數組;

實例:

<?php

$a_bill_info    = array('name'=>'bill','age'=>25,'job'=>'worker');
$a_tom_info  = array('first_name'=>'tom','age'=>22,'job'=>'worker');

print_r(array_diff($a_bill_info,$a_tom_info));

#output :Array ( [name] => bill [age] => 25 );

?>

備注:

參與比較的數組數量 >= 2;
返回的數組由 array_1 中,同其他數組鍵值不同的元素構成,沒有返回空數組;


array_diff_key()

比較數組的鍵名,返回差集;

基礎語法:
array array_diff_key(array $array_1,array $array_2......);

array - 返回的數組,由 array_1 中,同其他數組鍵名不同的元素構成;
array_1 - 參與比較的元素;

實例:

$a_bill_info    = array('name'=>'bill','age'=>25,'job'=>'worker');
$a_tom_info  = array('first_name'=>'tom','age'=>22,'job'=>'worker');

print_r(array_diff_key($a_bill_info,$a_tom_info));

#output : Array ( [name] => bill );

備注:

參與比較的數組的數量 >=2;
返回的數組由 array_1 中,同其他數組 不同鍵名的元素 構成;


array_diff_assoc()

比較數組的鍵名和鍵值,返回差集;

基礎語法:
array array_diff_assoc(array $array_1 ,array $array_2......);

array - 返回的數組,由array_1 中,同其他數組鍵值不同 or 鍵名不同的元素構成;
array_1 - 用來比較的數組;

實例:


<?php
$a_bill_info    = array('name'=>'bill','age'=>25,'job'=>'worker');
$a_tom_info  = array('first_name'=>'tom','age'=>22,'job'=>'worker');

print_r(array_diff_assoc($a_bill_info,$a_tom_info));
#output : Array ( [name] => bill [age] => 25 );
?>

備注:

參與比較的數組數量 >= 2;
比較的是數組的鍵值和鍵名,只要數組的鍵值和鍵名不同,就算返回數組的元素;


array_intersect()

比較數組的鍵值,返回交集;

基礎語法:
array array_intersect(array $array_1,array $array_2......);

array - 返回的數組,由 array_1 中,同其他數組的鍵值相同的元素構成;
array_1 - 用來參與比較的數組,

實例:

$a_bill_info    = array('name'=>'bill','age'=>25,'job'=>'worker');
$a_tom_info  = array('first_name'=>'tom','age'=>22,'job'=>'worker');

print_r(array_intersect($a_bill_info,$a_tom_info));
#output : Array ( [job] => worker );


array_intersect_key()

比較數組的鍵名,返回交集;

基礎語法:
array array_intersect_key(array $array_1,array $array_2......)

array - 返回的數組,由 array_1中,同其他數組鍵名相同的元素構成;
array_1 - 參與比較的數組;

實例:

<?php
$a_bill_info    = array('name'=>'bill','age'=>25,'job'=>'worker');
$a_tom_info  = array('first_name'=>'tom','age'=>22,'job'=>'worker');

print_r(array_intersect_key($a_bill_info,$a_tom_info));
#output : Array ( [age] => 25 [job] => worker );

?>


array_intersect_assoc()

比較數組的鍵名和鍵值,返回交集;

基礎語法:
array array_intersect_assoc(array $array_1 ,array $array_2......);

array - 返回的數組,由array_1 中,同其他數組的鍵值 && 鍵名 都相同的元素構成;

實例:

<?php
$a_bill_info    = array('name'=>'bill','age'=>25,'job'=>'worker');
$a_tom_info  = array('first_name'=>'tom','age'=>22,'job'=>'worker');

print_r(array_intersect_assoc($a_bill_info,$a_tom_info));
#output : Array ( [job] => worker );

?>


總結:

以上的函數可以比較2個或多個數組;
返回的數組都是由 array_1 中的元素構成;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容