1. 程式人生 > >求數組差/交集函數-php數組函數(二)

求數組差/交集函數-php數組函數(二)

數組的交集 回調函數 同時 兩個 png oci href .com inter

求數組差集函數

  • 函數只檢查了多維數組中的一維。可以用 array_diff($array1[0], $array2[0]) 檢查更深的維度。
  • u:自定義函數比較,a(association):同時比較
  • 自定義函數callable $value_compare_func必須返回一個小於零,等於零,或大於零的整數。其中返回零代表兩個數相等。

技術分享圖片

對比數組值的函數


array_diff

  • 對比(===) array1array2···的值(value),返回在 $array1 中但是不在其他 array 裏的值,鍵名保留不變。
array array_diff ( array $array1 , array $array2 [, array $... ] )

array_udiff

  • 用自定義函數比較 $array1, $array2···的值(value),函數參數為數組的。返回在$array1,不在其他array的元素,保持鍵值關聯。
array array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )
int value_compare_func(( mixed $a, mixed $b )) //該比較函數必須相應地返回一個小於,等於或大於 0 的整數。
#返回0,意味著兩個數相等,即值在兩個數組都出現了,所以等於0不返回值。
#根據value_compare_func($a, $b)的參數順序返回元素,如:value_compare_func($b, $ba),返回在$b不在$a的元素

對比數組鍵的函數


array_diff_key

  • 對比(===) array1array2···的鍵(key),所有出現在 $array1 中但是不在其他array中的鍵(key)的值。
array array_diff_key ( array $array1 , array $array2 [, array $... ] )

array_diff_ukey

  • 用自定義函數比較 $array1, $array2···的,函數參數為數組的,鍵不同即返回元素。返回在$array1,不在其他array的元素,保持鍵值關聯。
array array_diff_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

同時對比


array_diff_assoc

  • 比較 $array1, $array2···的鍵(key)值(value),返回在$array1,不在其他array的元素,保持鍵值關聯。。
array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )

array_diff_uassoc

  • 用自定義函數比較 $array1, $array2···的鍵(key)值(value),回調函數參數為數組的,鍵值都相同時不返回元素。返回在$array1,不在其他array的元素,保持鍵值關聯。
array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

array_udiff_assoc

  • 用自定義函數比較 $array1, $array2···的鍵(key)值(value),回調函數參數為數組的,鍵值都相同時不返回元素。返回在$array1,不在其他array的元素,保持鍵值關聯。
array array_udiff_assoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )

array_udiff_uassoc

  • 用自定義函數比較 $array1, $array2···的鍵(key)值(value),兩個函數參數分別為數組的/。返回在$array1,不在其他array的元素,保持鍵值關聯。
array array_udiff_uassoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func , callable $key_compare_func )

求數組交集函數

  • 交集函數和差集函數的用法大同小異

技術分享圖片

對比數組的函數,不比較


array_intersect

  • 計算數組的交集

array_uintersect

  • 計算數組的交集,用回調函數比較數據

對比數組的函數,不比較


array_intersect_key

  • 使用鍵名比較計算數組的交集

array_intersect_ukey

  • 用回調函數比較鍵名來計算數組的交集

同時對比數組的函數


array_intersect_assoc

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

array_intersect_uassoc

  • 帶索引檢查計算數組的交集,用回調函數比較索引

array_uintersect_assoc

  • 帶索引檢查計算數組的交集,用回調函數比較數組值

array_uintersect_uassoc

  • 帶索引檢查計算數組的交集,用單獨的回調函數比較數據和索引

原文地址:https://segmentfault.com/a/1190000015797875

求數組差/交集函數-php數組函數(二)