程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中的常用數組函數(一)(比較多個數組的差集的函數們 array_diff_assoc() array_diff() array_diff_key() array_diff_ukey() array_diff_uassoc()),arraydiffuassoc

php中的常用數組函數(一)(比較多個數組的差集的函數們 array_diff_assoc() array_diff() array_diff_key() array_diff_ukey() array_diff_uassoc()),arraydiffuassoc

編輯:關於PHP編程

php中的常用數組函數(一)(比較多個數組的差集的函數們 array_diff_assoc() array_diff() array_diff_key() array_diff_ukey() array_diff_uassoc()),arraydiffuassoc


array_diff_assoc($arr1, $arr2, $arr3,... n);

返回:一個$arr1的副本,後續的數組中出現一個鍵值相同的元素,就在副本中刪掉這個元素,最後返回這個副本。

如:$arr1中有元素 ['k1' => 'v1'],$arr2~n中出現了同樣的同鍵名同鍵值的 'k1'=>'v1'就不返回這個元素了。


array_diff(同上)

返回:一個$arr1的副本,後續的數組中出現一個值相同的元素,就在副本中刪掉這個元素,最後返回這個副本。


array_diff_key(同上)

 返回:一個$arr1的副本,後續的數組中出現一個鍵相同的元素,就在副本中刪掉這個元素,最後返回這個副本。


array_diff_ukey(同上,'自定義比較函數')

和array_diff_key()用法差不多,只是比較的規則可以自己設置,下面有示例代碼,可以加一些復雜的。比如是學生數據的數組,判斷名字重復然後分數大於60.自定義函數的倆參數是key


array_diff_uassoc(同上,'自定義比較函數')

和上一個差不多,除了倆參數是元素(即'key'=>'value')


 

以下是。這5個函數的演示。 

/***********array_diff_assoc(統計與多個數組的鍵值差集) ——————返回$arr1中 後續數組沒有的鍵值集合(數組2~數組n中出現了一樣的鍵值 就不包含這對鍵值)*****************/
$arr1 = array('k1' => 'v1', 'k2' => 'v2', 'k3' => 'v3');
$arr2 = array('s1' => 'v1', 's2' => 'v2', 'k3' => 'v3');//有和$arr1中一樣的'k3' => 'v3',函數的返回值中就不包含'k3' => 'v3'了
$arr3 = array('k1' => 'v1', 's2' => 'v2');//有一樣的'k1' => 'v1',返回就不包含'k1' => 'v1'了
$arrDiffAssoc = array_diff_assoc($arr1, $arr2, $arr3);
var_dump($arrDiffAssoc);

/***********array_diff(統計與多個數組的值差集) *****************/
$arr1 = array('k1' => 'v1', 'k2' => 'v2', 'k3' => 'v3');
$arr2 = array('a1' => 'v1', 'k2' => 'a2');
$arr3 = array('a2' => 'v2');
$arrDiff = array_diff($arr1, $arr2, $arr3);
var_dump($arrDiff);

/***********array_diff_key(統計與多個數組的鍵差集) *****************/
$arr1 = array('k1' => 'v1', 'k2' => 'v2', 'k3' => 'v3');
$arr2 = array('k1' => 'apple', 'k2' => 'banana');//只對比鍵名,同鍵名的鍵值對在函數返回值中扣掉
$arr3 = array('a1' => 'v1');
$arrDiffKey = array_diff_key($arr1, $arr2, $arr3);
var_dump($arrDiffKey);

/***********array_diff_ukey(用自定義回調函數,統計與多個數組的鍵差集) *****************/
$arr1 = array( 'blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4 );
$arr2 = array( 'green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
$arrDiffUkey = array_diff_ukey($arr1, $arr2, 'arr_key_compare_func');
var_dump($arrDiffUkey);

function arr_key_compare_func ($k1, $k2) {
    if($k1 == $k2)
        return 0;
    else if ($k1 > $k2)
        return -1;
    else
        return 1;
}

/***********array_diff_uassoc(用自定義回調函數,統計與多個數組的鍵值差集) *****************/
$arr1 = array('blue' => 1, 'red' => 2, 'green' =>3 , 'purple' => 4);
$arr2 = array('green' => 5, 'blue' => 1, 'yellow' => 7, 'cyan' => 8);
$arrDiffUassoc = array_diff_uassoc($arr1, $arr2, 'arr_assoc_compare_func');
var_dump($arrDiffUassoc);
function arr_assoc_compare_func($a, $b) {
    if ($a === $b)
        return 0;
    return ($a > $b) ? 1 : -1;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved