Re: Recursive array_push?
| From: | David Grant | 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/