From: Ryan G. <sok...@gm...> - 2009-02-20 23:53:58
|
If you explode an empty string, it makes sense to have a one element array, which consists of that same empty string. If you try count(array("")) , you will get a result of one, as an empty string is still an array element. There are a lot of different options for locating characters inside of a string, I'd probably go with strrpos. On Fri, Feb 20, 2009 at 1:00 PM, Arlo Leach <ar...@ar...> wrote: > Hi folks, > > Consider the following PHP code, which explodes an empty string: > > $string = ""; > $array = explode("|", $string); > print_r($array); > print "Length: ".count($array); > > I would expect this to output an empty array: > > Array ( ) Length: 0 > > But it actually outputs: > > Array ( [0] => ) Length: 1 > > Does anyone else find this odd? It has bitten me a few times lately, when I > test the existence of data with a count(), or try to process data with a FOR > loop. I end up writing this a lot to get the expected results: > > $array = ($string) ? explode(",", $string) : array() ; > > I was considering logging a bug report but wondered what your thoughts were. > > Cheers, > -Arlo > > _______________________________ > > Arlo Leach > 773.769.6106 > http://arlomedia.com > > > > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > chiPHPug-discuss mailing list > chi...@li... > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > |