Ответ 1
К сожалению, в PHP вам нужно сделать это:
$a = array("1" => "2");
$b = $a["1"];
Кажется, что ваш пример должен работать, потому что он работает на других языках. Но это как раз то, как PHP.
Почему следующий код дает мне ошибку в php?:
$b = array("1" => "2")["1"];
Ошибка, которую я получаю, это ошибка Parse...
Справка.
К сожалению, в PHP вам нужно сделать это:
$a = array("1" => "2");
$b = $a["1"];
Кажется, что ваш пример должен работать, потому что он работает на других языках. Но это как раз то, как PHP.
Пара вещей. Вы не можете вытаскивать сразу из массивов во время создания, а ключи числовых значений автоматически преобразуются в целые числа, даже если они предназначены для строк.
Вы можете использовать для этого функцию:
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
Если вам не нужно обращаться к многомерным массивам, вы также можете использовать эту более короткую функцию:
function Get($array, $key, $default = false)
{
if (is_array($array) === true)
{
return (array_key_exists($value, $array) === true) ? $array[$value] : $default;
}
return $default;
}