Re: [PHP] Removing empty values from array
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? ?php foreach( array_keys( $array ) as $key ) { if( (string)$array[$key] === '' ) { unset( $array[$key] ); } } ? The above will not remove a value of '0' which IMHO is not empty. If you actually want to get rid of '0' also, then change === to == and remove the (string) cast. Cheers, Rob. -- http://www.interjinn.com Application and Templating Framework for PHP -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Removing empty values from array
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
Re: [PHP] Removing empty values from array
On Thu, Jun 25, 2009 at 5:00 PM, Ashley Sheridana...@ashleysheridan.co.uk 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 . -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Removing empty values from array
Eddie Drapkin wrote: On Thu, Jun 25, 2009 at 5:00 PM, Ashley Sheridana...@ashleysheridan.co.uk 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 . And you would unfortunately find it doesn't work. Cheers, Rob. -- http://www.interjinn.com Application and Templating Framework for PHP -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Removing empty values from array
On Thu, 2009-06-25 at 17:18 -0400, Eddie Drapkin wrote: On Thu, Jun 25, 2009 at 5:00 PM, Ashley Sheridana...@ashleysheridan.co.uk 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