如何在PHP中使用explode并获取第一行元素?

时间:2014-04-23 20:50:13

标签: php arrays

$beforeDot = explode(".", $string)[0];

这是我试图做的,除了它返回语法错误。如果有一个班轮的解决方法,请告诉我。如果无法做到这一点,请解释。

7 个答案:

答案 0 :(得分:8)

您可以使用list

list($first) = explode(".", "foo.bar");
echo $first; // foo

如果您需要第二个(或第三个等)元素,这也适用:

list($_, $second) = explode(".", "foo.bar");
echo $second; // bar

但那可能会变得非常笨拙。

答案 1 :(得分:8)

function array dereferencing是在PHP 5.4中实现的,所以如果您使用的是旧版本,则必须采用另一种方式。

这是一个简单的方法:

$beforeDot = array_shift(explode('.', $string));

答案 2 :(得分:2)

为此目的使用array_shift()

$beforeDot = array_shift(explode(".", $string));

答案 3 :(得分:2)

使用current(),在爆炸后获得第一个位置:

$beforeDot = current(explode(".", $string));

答案 4 :(得分:1)

在php< = 5.3中你需要使用

$beforeDot = explode(".", $string);
$beforeDot = $beforeDot[0];

答案 5 :(得分:0)

2020年:Google带来了类似的服务。

将“ explode”与“ implode”配对以填充变量。

爆炸->在分隔符处将字符串分成数组
内爆->将第一个数组元素中的字符串转换为变量

$str = "ABC.66778899";
$first = implode(explode('.', $str, -1));

将为您提供“ ABC”作为字符串。 根据您的字符串特征,调整limit参数使其爆炸。

答案 6 :(得分:0)

对于读到这里的其他人,我一直使用错误抑制运算符 (@) 来在使用 error_reporting E_STRICT 运行时停止 PHP 的错误 - 它一直是我解决同样问题的方法,但要在一行中获取数组中的最后 项:

#> php -v | head -1 | awk '{ print $2 }'
8.0.0
#> php -a
Interactive mode enabled
php > ini_set('error_reporting', E_ALL);
php > var_dump(end(explode('/', 'foo/bar/last-segment')));

Notice: Only variables should be passed by reference in php shell code on line 1
string(12) "last-segment"

为什么 PHP 会发出错误,但仍然返回我想要的东西?所以:

php > var_dump(@end(explode('/', 'foo/bar/last-segment')));
string(12) "last-segment"

唉,这may not work in some scenarios in PHP8