php 比较数组的不同的值,php array_udiff 比较两个数组的键值,并返回差集
array_udiff — 用回調函數比較數據來計算數組的差集
說明
array_udiff(array1,array2,array3...,myfunction)
array_udiff() 返回一個數組,該數組包括了所有在 array1 中但是不在任何其它參數數組中的值。注意鍵名保持不變。數據的比較是用 data_compare_func 進行的。如果認為第一個參數小于,等于,或大于第二個參數時必須分別返回一個小于零,等于零,或大于零的整數。這和 array_diff() 不同,后者使用了內部函數來比較數據。
參數介紹
參數
描述
array1
必需。與其他數組進行比較的第一個數組。
array2
必需。與第一個數組進行比較的數組。
array3,...
可選。與第一個數組進行比較的其他數組。
myfunction
必需。字符串值,定義可調用的比較函數。
如果第一個參數小于等于或大于第二個參數,則比較函數必須返回小于等于或大于 0 的整數。
返回值
返回差集數組,該數組包含所有在被比較的數組(array1)中,但是不在任何其他參數數組(array2或?array3?等等)中的鍵值。
實例:
class cr {
private $priv_member;
function cr($val) {
$this->priv_member = $val;
}
static function comp_func_cr($a, $b) {
if ($a->priv_member === $b->priv_member) return 0;
return ($a->priv_member > $b->priv_member) ? 1 : -1;
}
}
$a = array(
"0.1" => new cr(9) ,
"0.5" => new cr(12) ,
0 => new cr(23) ,
1 => new cr(4) ,
2 => new cr(-15) ,
);
$b = array(
"0.2" => new cr(9) ,
"0.5" => new cr(22) ,
0 => new cr(3) ,
1 => new cr(4) ,
2 => new cr(-15) ,
);
$result = array_udiff($a, $b, array(
"cr",
"comp_func_cr"
));
print_r($result);
?>
運行結果:
Array
(
[0.5] => cr Object
(
[priv_member:private] => 12
)
[0] => cr Object
(
[priv_member:private] => 23
)
)
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的php 比较数组的不同的值,php array_udiff 比较两个数组的键值,并返回差集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php ajax 框架,PHP开发框架k
- 下一篇: php fpm listen.owner