Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一行中提取PHP的右部分_Php - Fatal编程技术网

在一行中提取PHP的右部分

在一行中提取PHP的右部分,php,Php,可能重复: 这就是我的意思。目前我必须: $str = "foo-bar"; $foo = explode("-",$str); $foo = $foo[0]; 我想做的是: $str = "foo-bar"; $foo = explode("-",$str)[0]; 但这是一个语法错误!有没有其他方法可以在一条线上完成 编辑:只是想明确我也希望能够做到 $str = "foo-bar-baz"; $bar = explode("-",$str)[1]; 还有。或者您可以: list($

可能重复:

这就是我的意思。目前我必须:

$str = "foo-bar";
$foo = explode("-",$str);
$foo = $foo[0];
我想做的是:

$str = "foo-bar";
$foo = explode("-",$str)[0];
但这是一个语法错误!有没有其他方法可以在一条线上完成

编辑:只是想明确我也希望能够做到

$str = "foo-bar-baz";
$bar = explode("-",$str)[1];
还有。

或者您可以:

list($foo) = explode('-', $str);
$foo = array_shift(explode("-", $str));
[编辑]由于问题已经改变,现在是一种非常肮脏的方式:

list(,$foo) = explode("-", $str); // Add as many commas as needed to get the proper index
另一种选择:

$foo = current(explode("-", $str));

不过,说真的:这个没有速记法。你可以在一行上用几种不同的方法来做,但没有一种方法比你现有的两行解决方案更具描述性和简短。

+1作为第一个回答如果你只在第一个索引之后,那么如果所需的项目是三个元素中的第二个呢,我是在能够做任何indexArray解引用目前在PHP中不受支持,但很快就会得到支持-我假设这只适用于第一个索引?是的,它只适用于第一个索引。这只是另一种方式。但是,使用该函数,您可以增加数组内部指针,并对其他元素使用此方法。我假设这只适用于第一个索引?您的问题很不清楚。现在您希望能够访问任何索引。另外,你只是想找到一种方法在一行而不是两行中完成这项工作?是的,我只是想知道这是否可能,我不相信。list(,$foo)=explode('-',$str);您可以添加任意多的逗号以获得所需的索引。这个例子会让你明白[1]。这是一条线,但是是的,这是脏的。
$foo = explode("-",$str) and $foo = $foo[0];