Re: Array - partical path to the array's path....
| From: | Jochem Maas | Date: | Tue, 27 Sep 2005 19:35:24 +0000 |
| Subject: | Re: Array - partical path to the array's path.... | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-223304@lists.php.net to get a copy of this message | ||
Mike Dunlop wrote:
On Sep 27, 2005, at 10:22 AM, Scott Fletcher wrote:really? did you test that? doesn't work when I do it (the second expression does - but doesn't answer the OPs question actually imho the answer is not eval() either, because its slow and a security headache): $array = array(); $array["col3"]["col2"] = "Test #2"; $prefix = "[\"col3\"][\"col2\"]"; echo ${"array".$prefix}, ${"array"}["col3"]["col2"]; ----------------------------- try something like this instead?: (code has been tested) function getVal($arr, $path) {[code] $array = array(); $array['col1']['col2'] = "Test #1"; $array['col3']['col2'] = "Test #2"; $prefix = "['col3']['col2']"; echo $array.$prefix; //Spitted out result as "Test #2"... [/code] This is the simple code that I'm trying to make it work. Does anyone know how does these work with array? Some help here... Thanks... FletchSODecho ${"array".$prefix};
$retval = null;
if (!is_array($arr) || empty($arr) ||
!is_array($path) || empty($path)) {
return null;
}
while (count($path)) {
$key = array_shift($path);
if (!isset($arr[ $key ])) {
return null;
}
$retval = $arr[ $key ];
$arr =& $arr[ $key ];
}
return $retval;} $ra = array(); $ra["col3"]["col2"] = "Test #2"; $path = array("col3","col2"); echo getVal($ra, $path);