Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F1376616
array_udiff.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Feb 1, 9:21 PM
Size
3 KB
Mime Type
text/x-php
Expires
Tue, Feb 3, 9:21 PM (3 h, 46 m)
Engine
blob
Format
Raw Data
Handle
884819
Attached To
rINP In-Portal
array_udiff.php
View Options
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Stephan Schmidt <schst@php.net> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_udiff.php,v 1.1 2004-10-26 18:22:16 kostja Exp $
//
/**
* Replace array_udiff()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_udiff
* @author Stephan Schmidt <schst@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.1 (trigger_error)
*/
if
(!
function_exists
(
'array_udiff'
))
{
function
array_udiff
()
{
$args
=
func_get_args
();
if
(
count
(
$args
)
<
3
)
{
trigger_error
(
'Wrong parameter count for array_udiff()'
,
E_USER_WARNING
);
return
null
;
}
// Get compare function
$compare_func
=
array_pop
(
$args
);
if
(!
is_callable
(
$compare_func
))
{
if
(
is_array
(
$compare_func
))
{
$compare_func
=
$compare_func
[
0
]
.
'::'
.
$compare_func
[
1
];
}
trigger_error
(
'array_udiff() Not a valid callback '
.
$compare_func
,
E_USER_WARNING
);
return
null
;
}
// Check arrays
$cnt
=
count
(
$args
);
for
(
$i
=
0
;
$i
<
$cnt
;
$i
++)
{
if
(!
is_array
(
$args
[
$i
]))
{
trigger_error
(
'array_udiff() Argument #'
.
(
$i
+
1
).
' is not an array'
,
E_USER_WARNING
);
return
null
;
}
}
$diff
=
array
();
// Traverse values of the first array
foreach
(
$args
[
0
]
as
$key
=>
$value
)
{
// Check all arrays
for
(
$i
=
1
;
$i
<
$cnt
;
$i
++)
{
foreach
(
$args
[
$i
]
as
$cmp_value
)
{
$result
=
call_user_func
(
$compare_func
,
$value
,
$cmp_value
);
if
(
$result
===
0
)
{
continue
3
;
}
}
}
$diff
[
$key
]
=
$value
;
}
return
$diff
;
}
}
?>
Event Timeline
Log In to Comment