- var_dump: documentation ( source)
- array_shift: documentation ( source)
- str_replace: documentation ( source)
- explode: documentation ( source)
<?php
function l($name)
{
$a = ["a" => "aaa", "b" => ["a"=>"123456"], "c" => ["d"=>["e" =>"1%1"]]];
$keys = explode(".", $name);
$key = array_shift($keys);
$result = isset($a[$key]) ? $a[$key] : null;
foreach($keys as $k)
{
if(!$result)
return $name;
$result = isset($result[$k]) ? $result[$k] : null;
}
$args = func_get_args();
foreach($args as $k => $v)
$result = str_replace("%{$k}", $v, $result);
return $result;
}
var_dump(l("a"));
var_dump(l("b.a"));
var_dump(l("b.c"));
var_dump(l("c.d.e", 45));