如何在不分配数组变量的情况下访问数组元素


How to access an array element without assigning an array variable?

例如:

echo explode('@',$var); //but only echoing element 1 or 2 of the array?

而不是:

$variable = explode('@',$var);
echo $variable[0];

谢谢。

在支持数组取消引用的 PHP 版本上,可以使用以下语法:

echo explode('@', $var)[0];

如果没有,您可以使用list()

list($foo) = explode('@', $var);

上面的语句将在变量 $foo 中分配松散数组的第一个值。

从 PHP 5.4 开始,你可以写:

echo explode('@', $var)[0];

在早期版本的 PHP 中,您只能通过技巧来实现该行为:

echo current(explode('@', $var)); // get [0]
echo next(explode('@', $var));    // get [1]

如果没有临时变量,就不可能在任意位置检索元素。


下面是一个简单的函数,如果你不想每次都使用变量,它可以整理你的代码:

function GetAt($arr, $key = 0)
{
    return $arr[$key];
}

像这样打电话:

echo GetAt(explode('@', $var));    // get [0]
echo GetAt(explode('@', $var), 1); // get [1]

在 PHP 5.4 之前,你可以这样做:

echo array_shift(explode('@', $var));

这将呼应由爆炸创建的数组的第一个元素。但它这样做时没有错误地检查爆炸的输出,这并不理想。

list也可以这样使用:

list($first) = explode('@', $var);
list(,$second) = explode('@', $var);
list(,,$third) = explode('@', $var);

像这样使用reset

echo reset(explode('@', $var));
相关文章: