php语法,数组和错误

时间:2009-12-27 03:01:28

标签: php arrays

为什么下面的代码在php中给我一个错误?:

$b = array("1" => "2")["1"];

我得到的错误是Parse错误......

帮助。

3 个答案:

答案 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;
}