|testing for array of empty values|
| 4:50 pm on Jan 19, 2012 (gmt 0)|
Is there an easy test to see if an array has only empty values?
empty($x) doesn't work for: $x = array('',' ','');
This works, but I'm looking for something simpler:
if ( !trim(implode($x)) )...
| 5:48 pm on Jan 19, 2012 (gmt 0)|
>> something simpler
How so? That's pretty simple. There are no built-in PHP functions that do what you're looking for that I know of. If you're looking for brevity, then why not write your own function for this?
| 7:05 pm on Jan 19, 2012 (gmt 0)|
I would agree, that looks pretty simple and fits your example.
But your example seems to be a special case, since a string containing a space is not strictly 'empty' as far as PHP is concerned. So even if there was a PHP function to perform this action, I would guess it would fail.
Likewise, 'empty' values includes '0' and empty array's which would cause your current test to fail.
| 7:56 pm on Jan 19, 2012 (gmt 0)|
OK - just wanted to be sure I wasn't missing a built-in function similar to 'empty'.
| 12:11 pm on Feb 20, 2012 (gmt 0)|
Just encountered this again... an alternative... if you want to check that an array contains only empty values (that is PHP's definition of empty [uk.php.net]) then you could use array_filter() [uk.php.net], omitting the 2nd (callback) argument. The default behaviour is to filter out empty elements. So, this becomes...
$x = array('',0,0.0,'0',null,false,array());
echo !array_filter($x) ? 'EMPTY' : 'NOT empty'; // EMPTY
NB: This does not consider strings of spaces to be empty as in the OP. You would need to provide a simple callback function in order to check for that.