为什么下面的代码在php中给我一个错误?:
$b = array("1" => "2")["1"];
我得到的错误是Parse错误......
帮助。
答案 0 :(得分:5)
不幸的是,在PHP中,你需要这样做:
$a = array("1" => "2");
$b = $a["1"];
感觉您的示例应该有效,因为它在其他语言中有效。但这只是PHP的方式。
答案 1 :(得分:4)
夫妻俩。您无法在创建过程中立即从数组中提取数据,并且数值键会自动转换为整数,即使它们是字符串也是如此。
答案 2 :(得分:0)
您可以使用函数为您执行此操作:
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;
}