Re: Multidimensional array construction

From: Date: Tue, 04 Dec 2001 00:29:49 +0000
Subject: Re: Multidimensional array construction
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-76440@lists.php.net to get a copy of this message
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. Mike 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:Darren.Gamble@sjrb.ca] 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


« previous php.general (#76440) next »