BlaBla.cn

PHP: array_diff_uassoc - Manual

BlaBla.cn
array_diff_ukey > <array_diff_key
Last updated: Wed, 19 Mar 2008

array_diff_uassoc

(PHP 5)

array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集

说明

array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callback $key_compare_func )

array_diff_uassoc() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。

此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。这和 array_diff_assoc() 不同的是还使用了比较索引的内部函数。

Example#1 array_diff_uassoc() 例子

<?php
function  key_compare_func ( $a $b )
{
    if (
$a  ===  $b ) {
        return 
0 ;
    }
    return (
$a  $b )?  1 :- 1 ;
}

$array1  = array( "a"  =>  "green" "b"  =>  "brown" "c"  =>  "blue" "red" );
$array2  = array( "a"  =>  "green" "yellow" "red" );
$result  array_diff_uassoc ( $array1 $array2 "key_compare_func" );
print_r ( $result );
?>

上例将输出:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

    

上面的例子中 "a" => "green" 出现在两个数组中因此不在函数的输出中。但是 0 => "red" 却在输出中,因为第二个参数中的 "red" 的键名是 1

两个索引是否相同是由用户提供的回调函数来检查的。

Note: 注意本函数只检查了多维数组中的一维。当然可以用 array_diff_uassoc($array1[0], $array2[0], "key_compare_func"); 检查更深的维度。

参见 array_diff()array_diff_assoc()array_udiff()array_udiff_assoc()array_udiff_uassoc()array_intersect()array_intersect_assoc()array_uintersect()array_uintersect_assoc()array_uintersect_uassoc()




array_diff_ukey > <array_diff_key
Last updated: Wed, 19 Mar 2008
 
 
BlaBla.cn

© 2005-2008 BlaBla.cn 版权所有