Re: Recursive array_push?

From: Date: Thu, 26 Jan 2006 11:25:55 +0000
Subject: Re: Recursive array_push?
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-229303@lists.php.net to get a copy of this message
Kim, After some contemplation (and slightly less crack): <?php $str = "[layer1][layer2][layer3][layer4]"; $parts = array_reverse(explode("][", substr($str, 1, -1))); $array = "FOO"; foreach ($parts as $part) { $array = array($part => $array); } print_r($array); ?> Array ( [layer1] => Array ( [layer2] => Array ( [layer3] => Array ( [layer4] => FOO ) ) ) ) David David Grant wrote: > Kim, > > May the hack-o-rama commence: > > <?php > $str = "[layer1][layer2][layer3][layer4]"; > $parts = explode("][", substr($str, 1, -1)); > $text = ""; > foreach ($parts as $part) { > $text .= 'a:1:{s:' . strlen($part) . ':"' . $part . > '";'; > } > $text .= 'b:1;' . str_repeat('}', count($parts)); > print_r(unserialize($text)); > ?> > > It works, but I'm not proud. :P > > David -- David Grant http://www.grant.org.uk/

« previous php.general (#229303) next »