使用函数访问PHP数组元素?

我正在研究一个使用PHP的内部数组指针沿着多维数组迭代的程序。 我需要从当前行获取一个元素,并且我一直这样做:

$arr[key($arr)]['item']

不过,我更愿意使用类似于以下内容的东西:

current($arr)['item'] // invalid syntax

我希望有一个功能在那里,我已经错过了我的文档扫描,使我能够访问元素如下:

getvalue(current($arr), 'item')

要么

current($arr)->getvalue('item')

有什么建议么?


我非常怀疑是否有这样的功能,但写起来很微不足道

function getvalue($array, $key)
{
  return $array[$key];
}

编辑:从PHP 5.4开始,您可以直接从函数表达式current($arr)['item']索引数组元素。


你有没有尝试过使用其中一个迭代器类呢? 那里可能有些东西正是你想要的东西。 如果没有,你可能通过扩展ArrayObject类来获得你想要的。


这个功能可能有点长,但我一直都在使用它,特别是如下所示:

if (array_key_exists('user', $_SESSION) === true)
{
    if (array_key_exists('level', $_SESSION['user']) === true)
    {
        $value = $_SESSION['user']['level'];
    }

    else
    {
        $value = 'DEFAULT VALUE IF NOT EXISTS';
    }
}

else
{
    $value = 'DEFAULT VALUE IF NOT EXISTS';
}

变成这样:

Value($_SESSION, array('user', 'level'), 'DEFAULT VALUE IF NOT EXISTS');

这是功能:

function Value($array, $key = 0, $default = false)
{
    if (is_array($array) === true)
    {
        if (is_array($key) === true)
        {
            foreach ($key as $value)
            {
                if (array_key_exists($value, $array) === true)
                {
                    $array = $array[$value];
                }

                else
                {
                    return $default;
                }
            }

            return $array;
        }

        else if (array_key_exists($key, $array) === true)
        {
            return $array[$key];
        }
    }

    return $default;
}

PS:你也可以使用一维数组,像这样:

Value($_SERVER, 'REQUEST_METHOD', 'DEFAULT VALUE IF NOT EXISTS');
链接地址: http://www.djcxy.com/p/69579.html

上一篇: Access PHP array element with a function?

下一篇: Is it possible to reference a specific element of an anonymous array in PHP?