获取逗号分隔字符串的第一个值

9
我正在寻找从逗号分隔的字符串中获取第一个值的最快/最短方法,内联
我能做到的最好的方法是:
$string = 'a,b,c,d';
echo "The first thing is " . end(array_reverse(explode(',', $string))) . ".";

但我觉得这太过冗余了。有更好的方法吗?

可能是重复问题 https://dev59.com/wnE95IYBdhLWcg3wDpmg - Steve Robbins
5个回答

9
list($first) = explode(',', 'a,b,c,d');
var_dump($first);  // a

可能可行 :)


在PHP 6.0中,您只需执行以下操作:

$first = explode(',', 'a,b,c,d')[0];

但是在5.x及以下版本中,这是一个语法错误。

在这种情况下,list() 不是有点过度了吗? - Jeroen
我的选项似乎更合乎逻辑/更简单,但可能只是我自己的看法;) - Jeroen
在你的第一个解决方案中,list() 返回一个数组。虽然我喜欢你的第二个解决方案,但希望它能在早期版本中运行。 - Steve Robbins
你是什么意思?list()什么也不返回,它不是一个函数。它在赋值语句的左侧。 - Halcyon
1
“literal dereferencing” 在 PHP 5.5 中被宣布,因此不会有任何语法错误。 - revo
$first = explode(',', 'a,b,c,d')[0]; 这似乎是最简单直接的方式。 - ypdev19

8

Steve

It's little bit shorter

strtok('a,b,c,d', ",")

这个是最好的! - apnerve

6
如何?
echo reset(explode(',', 'a,b,c,d'))

4
<?php    
$array = explode(',', 'a,b,c,d');
$first = $array [0];

1
        $int = substr($string,0,strpos($string,","));

2
请提供更多细节,说明您正在做什么! - Farbod Ahmadian
在Stack Overflow上,不鼓励只提供代码的答案,因为它们无法解释它是如何解决问题的。请编辑您的答案,解释这段代码的作用以及它如何回答问题,这样对于提问者和其他遇到类似问题的用户都会有帮助。 - FluffyKitten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接