On Thu, 2009-06-25 at 17:18 -0400, Eddie Drapkin wrote:
> On Thu, Jun 25, 2009 at 5:00 PM, Ashley
> Sheridan<[email protected]> 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