Edit report at https://bugs.php.net/bug.php?id=55633&edit=1
ID: 55633
Comment by: vovan-ve at yandex dot ru
Reported by: vovan-ve at yandex dot ru
Summary: New argument $invert for array_filter()
Status: Open
Type: Feature/Change Request
Package: Arrays related
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
> Use Closures
Usage of any user-defined function as a callback anywhere will reduce
performance. I think, it is much better to improve array_filter() as mentioned
above.
Previous Comments:
------------------------------------------------------------------------
[2012-01-23 22:39:24] gmblar+php at gmail dot com
Use Closures
$values = array(42, 'foo', false, null, array(), '');
var_dump(array_filter($values, function($value) {
return !is_null($value);
}));
------------------------------------------------------------------------
[2011-09-07 11:58:51] vovan-ve at yandex dot ru
Description:
------------
I think, it would be useful to add new argument $invert to array_filter()
function. It will be most useful to use built-in functions as a callback. For
example this call:
$result = array_filter($values, 'is_null', true);
should to _remove_ all NULLs from array.
May be the parameter should be named $positive and have default value TRUE (and
FALSE for inversion) to make code readable.
Test script:
---------------
$values = array(42, 'foo', false, null, array(), '');
var_dump(
array_filter($values, null, true), // no callback - leave false value
array_filter($values, 'is_null', true) // leave non-null values
);
Expected result:
----------------
array(5) {
[0]=>
bool(false)
[1]=>
NULL
[2]=>
array(0) {
}
[3]=>
string(0) ""
}
array(5) {
[0]=>
int(42)
[1]=>
string(3) "foo"
[2]=>
bool(false)
[3]=>
array(0) {
}
[4]=>
string(0) ""
}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=55633&edit=1