downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
search for in the  

<array_udiff_uassocarray_uintersect_assoc>
Last updated: Thu, 26 Jun 2008

array_udiff

(PHP 5)

array_udiff — Computes the difference of arrays by using a callback function for data comparison

Description

array array_udiff ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

Computes the difference of arrays by using a callback function for data comparison. This is unlike array_diff() which uses an internal function for comparing the data.

Parameters

array1

The first array.

array2

The second array.

data_compare_func

The callback comparison function.

The user supplied callback function is used for comparison. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

Return Values

Returns an array containing all the values of array1 that are not present in any of the other arguments.

Examples

Example #1 array_udiff() example

<?php
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);
?>

The above example will output:

Array
(
    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )

)

Notes

Note: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using array_udiff($array1[0], $array2[0], "data_compare_func");.



add a noteadd a note User Contributed Notes
Computes the difference of arrays by using a callback function for data comparison
There are no user contributed notes for this page.




<array_udiff_uassocarray_uintersect_assoc>
Last updated: Thu, 26 Jun 2008
show source | credits | sitemap | contact | advertising | mirror sites
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: http://phpbuilder.com/
Last updated: Tue Nov 1 20:20:59 2005 EST
Columns / Articles | Tips / Quickies | News | News Linking and RSS Feeds | Shared Code Library
Mail Archives | Support / Discussion Forums | Get Started! Links | Contribute! | Docs