|
Posted by Jochem Maas on 09/27/05 22:35
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);
[Back to original message]
|