I did something like this recently. Here's how I did it:

$some_value1 = 'Hello World';
$myarray['foo']['bar']['green']['apple'] = $some_value1;

function get_opt($arr, $keys,$sep=':') {
    $var = $arr;
    $tmp = split($sep,$keys);
    foreach ($tmp as $k => $v) {
        $var = $var[$v];
    if (isset($var)) return $var;
    return '';

echo get_opt($myarray, 'foo:bar:green:apple');

It needs refining, but it should do the job. That's entirely from 
memory, mind you.. it should work, though.


Martin Towell wrote:

>I was thinking that you could use a "pointer to var", eg:
>    $var = 'myarray["foo"]["bar"]["red"]["apple"]';
>    // this would obviously be created dynamically, hard coded for testing
>    $$var = $some_value1;
>    echo $myarray["foo"]["bar"]["red"]["apple"];
>but when I tried it, it didn't work :(
>looks like eval() to the rescue...
>-----Original Message-----
>From: Darren Gamble [mailto:[EMAIL PROTECTED]]
>Sent: Tuesday, December 04, 2001 10:37 AM
>To: PHP List
>Subject: [PHP] Multidimensional array construction
>Here's a question for the list:
>I have a two-dimensional array; essentially a list of arrays.  Each element
>(an array) can have any number of elements.  As a small example:
>  ( "foo" , "bar" , "red" , "apple" ),
>  ( "foo" , "bar" , "red" , "car"),
>  ( "foo" , "green" )
>I would like to traverse this array and place all of the data into another
>multidimensional array.  The following statements illustrate how I'd like to
>do this from the example:
>$myarray["foo"]["bar"]["red"]["apple"] = $some_value1;
>$myarray["foo"]["bar"]["red"]["car"]   = $some_value2;
>$myarray["foo"]["green"]               = $some_value3;
>Is there any way to easily do this in PHP?  I could "cheat" and use eval(),
>but there is probably a better way.  I have thought of using each() or
>references, but nothing has come to mind so far. 
>Any ideas?  Should I just use eval() ?
>Darren Gamble
>Planner, Regional Services
>Shaw Cablesystems GP
>630 - 3rd Avenue SW
>Calgary, Alberta, Canada
>T2P 4L4
>(403) 781-4948

PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to