php 比较数组的不同的值,php array_udiff 比较两个数组的键值,并返回差集
array_udiff — 用回調函數(shù)比較數(shù)據(jù)來計算數(shù)組的差集
說明
array_udiff(array1,array2,array3...,myfunction)
array_udiff() 返回一個數(shù)組,該數(shù)組包括了所有在 array1 中但是不在任何其它參數(shù)數(shù)組中的值。注意鍵名保持不變。數(shù)據(jù)的比較是用 data_compare_func 進行的。如果認為第一個參數(shù)小于,等于,或大于第二個參數(shù)時必須分別返回一個小于零,等于零,或大于零的整數(shù)。這和 array_diff() 不同,后者使用了內部函數(shù)來比較數(shù)據(jù)。
參數(shù)介紹
參數(shù)
描述
array1
必需。與其他數(shù)組進行比較的第一個數(shù)組。
array2
必需。與第一個數(shù)組進行比較的數(shù)組。
array3,...
可選。與第一個數(shù)組進行比較的其他數(shù)組。
myfunction
必需。字符串值,定義可調用的比較函數(shù)。
如果第一個參數(shù)小于等于或大于第二個參數(shù),則比較函數(shù)必須返回小于等于或大于 0 的整數(shù)。
返回值
返回差集數(shù)組,該數(shù)組包含所有在被比較的數(shù)組(array1)中,但是不在任何其他參數(shù)數(shù)組(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