Re: Removing empty values from array

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2009-06-25 at 17:18 -0400, Eddie Drapkin wrote:
> On Thu, Jun 25, 2009 at 5:00 PM, Ashley
> Sheridan<ash@xxxxxxxxxxxxxxxxxxxx> wrote:
> > On Thu, 2009-06-25 at 17:52 -0300, Martin Scotta wrote:
> >> Hi all
> >>
> >> I have this in a simple routine...
> >>
> >> for($i=0, $if=count($array); $i<$if; ++$i)
> >>       if( $array[$i] == '' )
> >>       {
> >>               array_splice( $array, $i, 1);
> >>
> >>               --$i;
> >>               --$if;
> >>       }
> >>
> >> My question: is this the better way to do it?
> >>
> >> --
> >> Martin Scotta
> >>
> > array_filter() will return an array without any elements that equate to
> > false (empty strings, 0, false) although you can use the optional
> > argument to specify your own function which should return true if you
> > want to keep an element, or false if you want to ditch it, if you need
> > to eliminate only empty strings.
> >
> >
> > Thanks
> > Ash
> > www.ashleysheridan.co.uk
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
> 
> I'd just do
> 
> foreach($array as &$v) {
>     if($v === false || $v === null || $v === 0) {
>         unset($v);
>     }
> }
> 
> 
> I wouldn't do anything more complicated >.>

Erm,

$array = array_filter($array);

is a lot less complicated than

foreach($array as &$v) {
    if($v === false || $v === null || $v === 0) {
        unset($v);
    }
}

and as it's a built-in function, likely faster.

Thanks
Ash
www.ashleysheridan.co.uk


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux