Re: New syntax for multidimensional array loop with foreach

From: Date: Thu, 27 Jun 2013 14:24:54 +0000
Subject: Re: New syntax for multidimensional array loop with foreach
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-67948@lists.php.net to get a copy of this message
2013/6/27 Kingsquare.nl - Robin Speekenbrink <robin@kingsquare.nl> > I'd thought this would have been solved by allowing the > list statement in > foreach ( > > > http://nl3.php.net/manual/en/control-structures.foreach.php#control-structures.foreach.list > ) > > Doesnt that solve your problem already? > This is only useable for structs, not for lists, or sets. > > Kind regards, > > Robin Speekenbrink > > > 2013/6/27 Florin Patan <florinpatan@gmail.com> > > > On Thu, Jun 27, 2013 at 4:10 PM, Christian Stoller <stoller@leonex.de> > > wrote: > > > Hi internals, > > > > > > during my current work I had an idea for shorter array iteration with > > foreach. I haven’t seen such a syntax until now, but I think it is easy > to > > understand ;-) > > > > > > Maybe you know the case where you have to iterate over all values of a > > 2D (or more) array: > > > > > > $count = 0; > > > foreach ($array as $key => $innerArray) { > > > foreach ($innerArray as $innerKey => $value) { > > > $count += $value; > > > // and do something with $key and $innerKey > > > } > > > } > > > > > > The new syntax could make it shorter and faster to write... but maybe > > it's a bit too confusing? > > > > > > $count = 0; > > > foreach ($array as $key => $innerArray as $innerKey => $value) { > > > $count += $value; > > > // and do something with $key and $innerKey > > > } > > > > > > If the keys aren't needed, you can shorten it to: > > > > > > $count = 0; > > > foreach ($array as $innerArray as $value) { > > > $count += $value; > > > } > > > > > > What do you think? > > > > > > -- > > > Christian Stoller > > > LEONEX Internet GmbH > > > > > > Hi, > > > > > > Quick question, how would the engine then treat this case: > > > > $array = array(); > > $array['level1.1']['level2']['level3'] = 'value'; > > $array['level1.2'] = new StdClass(); > > > > foreach($array as $level1 as $level2 as $level3) { ... } > > > > > > Best regards > > ---- > > Florin Patan > > https://github.com/dlsniper > > http://www.linkedin.com/in/florinpatan > > > > -- > > PHP Internals - PHP Runtime Development Mailing List > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > -- github.com/KingCrunch

« previous php.internals (#67948) next »