0

例如:

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

代替:

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

谢谢你。

4

5 回答 5

7

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

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

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

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

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

于 2013-10-16T16:07:06.400 回答
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]
于 2013-10-16T16:06:05.260 回答
1

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

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

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

于 2013-10-16T16:07:27.887 回答
1

list也可以这样使用:

list($first) = explode('@', $var);
list(,$second) = explode('@', $var);
list(,,$third) = explode('@', $var);
于 2013-10-16T16:23:07.913 回答
0

reset这样使用

echo reset(explode('@', $var));
于 2013-10-16T16:05:50.707 回答