On 10 August 2010 18:08, Andrew Ballard <aballard@xxxxxxxxx> wrote: > On Tue, Aug 10, 2010 at 12:23 PM, Richard Quadling <rquadling@xxxxxxxxx> wrote: >> On 10 August 2010 16:49, Jim Lucas <lists@xxxxxxxxx> wrote: >>> Richard Quadling wrote: >>>> >>>> Hi. >>>> >>>> Quick set of eyes needed to see what I've done wrong... >>>> >>>> The following is a reduced example ... >>>> >>>> <?php >>>> $Set = array(); >>>> $Entry = 'Set[1]'; >>>> $Value = 'Assigned'; >>>> $$Entry = $Value; >>>> print_r($Set); >>>> ?> >>>> >>>> The output is an empty array. >>>> >>>> Examining $GLOBALS, I end up with an entries ... >>>> >>>> [Set] => Array >>>> ( >>>> ) >>>> >>>> [Entry] => Set[1] >>>> [Value] => Assigned >>>> [Set[1]] => Assigned >>>> >>>> >>>> According to http://docs.php.net/manual/en/language.variables.basics.php, >>>> a variable named Set[1] is not a valid variable name. The [ and ] are >>>> not part of the set of valid characters. >>>> >>>> In testing all the working V4 and V5 releases I have, the output is >>>> always an empty array, so it looks like it is me, but the invalid >>>> variable name is an issue I think. >>>> >>>> Regards, >>>> >>>> Richard. >>>> >>>> NOTE: The above is a simple test. I'm trying to map in nested data to >>>> over 10 levels. >>> >>> For something like this, a string that looks like a nested array reference, >>> you might need to involve eval for it to "derive" that nested array. >>> >> >> I'm happy with that. >> >> It seems variable variables can produce variables that do not follow >> the same naming limitations as normal variables. >> > > It would seem so. If eval() works, can you rearrange the strings a > little to make use of parse_str() and avoid the use of eval()? > > Andrew > php -r "parse_str('a[1][2][3]=richard quadling'); var_dump($a);" outputs ... array(1) { [1]=> array(1) { [2]=> array(1) { [3]=> string(16) "richard quadling" } } } Perfect. Thanks. -- Richard Quadling. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php