使用函数访问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?