Re: explode a string

From: Date: Tue, 19 Apr 2005 18:44:50 +0000
Subject: Re: explode a string
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-213401@lists.php.net to get a copy of this message
Petar Nedyalkov wrote:
On Tuesday 19 April 2005 17:03, Jochem Maas wrote:
Richard Lynch wrote:
On Mon, April 18, 2005 4:34 am, Sebastian said:
$string = '4:gaming,5:hardware,3:software,8:security';
$idcats = explode(',', $string); while (list(, $idcat) = each($idcats)){ list($id, $cat) = explode(':', $idcat); echo "\$id = $id<br />\n"; echo "\$cat = $cat<br />\n"; }
The 'other' guy mentioned that while() is faster than foreach, is this true?
sorry to call you the 'other' guy, Petar - I was being lazy.
http://www.sitepoint.com/article/php5-standard-library "Note that the crude benchmarks I've performed suggest that calling the methods directly is faster than using foreach, because the latter introduces another layer of redirection that must be resolved at runtime by PHP."
are we talking about iterating over an Iterator or an array()? Harry Fuecks is talking about iterating over a php5 object..., your question/example features a straight array.
I read a few days ago somewhere on php.net that foreach() is the recommended (by php devs) way of iterating over arrays.... also, compare these 2 lines: while (list(, $idcat) = each($idcats)){ /* ... */ } foreach ($idcats as $idcat){ /* ... */ } now its seems to me that the foreach version is 'up' 2 function calls on the while loop, all else being equal the foreach loop has to be faster (given that calling functions is relatively very expensive)... or is foreach() _really_ heavy when compared to while()? not that I care too much, I find foreach() more pleasing to the eye and there is less to type (in the given example). :-) rgds, Jochem
what is the best way to explode then loop this string after its taken apart. output should be something like: $id = 4 $cat = gaming etc.. im just looking for the best/fastest way to do this. the string can grow to 200 or so bytes, maybe more.
200 bytes is chump-change. It really doesn't matter how you do this, within reason.


« previous php.general (#213401) next »