Re: Variable variables into an array.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux