Re: Array - partical path to the array's path....

From: 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:
[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... FletchSOD
echo ${"array".$prefix};
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) {
    $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);

« previous php.general (#223304) next »