Вот и я с eval'ом не хочу.Автор оригинала: *****
нафига тут евал - загадка
$tmp=&$arr[$part]
function do_array($array,$value,$tmp) {
if (!count($array))
return $value;
else {
$keys = array_keys($array);
$next_key = $keys[0];
unset($array[$next_key]);
$tmp[$next_key] = do_array($array,$value,$tmp);
return $tmp;
}
}
$path = 'abc/def/ghi';
$value = '111';
$array = explode("/",$path);
$array = do_array(array_flip($array),$value,array());
print_r($array);
$path = 'abc/def/ghi';
$value = '111';
$array = array();
$path = explode("/", $path);
$path = array_reverse($path);
foreach ($path as $p)
{
$array = array($p=>$array);
if (empty($array[$p]))
$array[$p] = $value;
}
echo $array['abc']['def']['ghi'];