On 10 August 2010 18:08, Andrew Ballard <[email protected]> wrote:
> On Tue, Aug 10, 2010 at 12:23 PM, Richard Quadling <[email protected]>
> wrote:
>> On 10 August 2010 16:49, Jim Lucas <[email protected]> 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