Кажется, что ваш пример должен работать, потому что он работает на других языках. Но это как раз то, как PHP.
Ответ 2
Пара вещей. Вы не можете вытаскивать сразу из массивов во время создания, а ключи числовых значений автоматически преобразуются в целые числа, даже если они предназначены для строк.
Ответ 3
Вы можете использовать для этого функцию:
function Get($array, $key, $default = false)
{
if (is_array($array) === true)
{
settype($key, 'array');
foreach ($key as $value)
{
if (array_key_exists($value, $array) === false)
{
return $default;
}
$array = $array[$value];
}
return $array;
}
return $default;
}
И используйте его следующим образом:
$b = Get(array("1" => "2"), "1"); // 2
Если вам не нужно обращаться к многомерным массивам, вы также можете использовать эту более короткую функцию: