mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00

Both of these functions are well-defined when used with a single array argument -- rejecting this case was an artificial limitation. This is not useful when called with explicit arguments, but removes edge-cases when used with argument unpacking: // OK even if $excludes is empty. array_diff($array, ...$excludes); // OK even if $arrays contains a single array only. array_intersect(...$arrays); This matches the behavior of functions like array_merge() and array_push(), which also allow calls with no array or a single array respectively. Closes GH-6097.
50 lines
727 B
PHP
50 lines
727 B
PHP
--TEST--
|
|
array_diff() with single array argument
|
|
--FILE--
|
|
<?php
|
|
|
|
$array = ["a" => 42];
|
|
$cmp = function($a, $b) { return $a <=> $b; };
|
|
var_dump(array_diff($array));
|
|
var_dump(array_diff_key($array));
|
|
var_dump(array_diff_ukey($array, $cmp));
|
|
var_dump(array_diff_assoc($array));
|
|
var_dump(array_diff_uassoc($array, $cmp));
|
|
var_dump(array_udiff($array, $cmp));
|
|
var_dump(array_udiff_assoc($array, $cmp));
|
|
var_dump(array_udiff_uassoc($array, $cmp, $cmp));
|
|
|
|
?>
|
|
--EXPECT--
|
|
array(1) {
|
|
["a"]=>
|
|
int(42)
|
|
}
|
|
array(1) {
|
|
["a"]=>
|
|
int(42)
|
|
}
|
|
array(1) {
|
|
["a"]=>
|
|
int(42)
|
|
}
|
|
array(1) {
|
|
["a"]=>
|
|
int(42)
|
|
}
|
|
array(1) {
|
|
["a"]=>
|
|
int(42)
|
|
}
|
|
array(1) {
|
|
["a"]=>
|
|
int(42)
|
|
}
|
|
array(1) {
|
|
["a"]=>
|
|
int(42)
|
|
}
|
|
array(1) {
|
|
["a"]=>
|
|
int(42)
|
|
}
|