如何在不指定数组变量的情况下访问数组元素?

时间:2013-10-16 16:04:23

标签: php

例如:

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

而不是:

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

谢谢。

5 个答案:

答案 0 :(得分:7)

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

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

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

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

上述语句将在变量$foo中分配爆炸数组的第一个值。

答案 1 :(得分:6)

从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]

答案 2 :(得分:1)

PHP 5.4之前你可以这样做:

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

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

答案 3 :(得分:1)

list也可以这样使用:

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

答案 4 :(得分:0)

只需像这样使用reset

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