删除字符串的一部分时遇到问题

时间:2019-02-22 20:46:45

标签: php

给出字符串“ 123456789@test.com”,我正尝试从“ @”符号上删除,我只想要数字。我一直试图将字符串拆分为一个数组,并根据该元素是否为数字来删除数组元素,然后将这些元素合并回字符串中。我的代码...

$employee_id = "123456789@test.com";
$employee_id_array = str_split($employee_id);

for($i = 0; $i < sizeof($employee_id_array); $i++) {
    if(is_numeric($employee_id_array[$i]) === false) {
        unset($employee_id_array[$i]);
        $employee_id_array = array_values($employee_id_array);
    }
}

$employee_id = implode($employee_id_array);

echo "employee id: $employee_id";

它应该打印出什么:123456789

它实际打印出的内容:123456789ts.o

我想念什么?

2 个答案:

答案 0 :(得分:1)

echo strstr($employee_id, '@', true);

答案 1 :(得分:0)

要获取employee_id字符串中的所有数字:

$employee_id = "123456789@test.com";
preg_match_all('!\d+!', $employee_id, $matches);
echo $matches[0][0];

这将返回提供的字符串中的所有数字。

如果您想在employee_id中的@之前获取字符串,则可以尝试以下操作:

$employee_id = "123456789@test.com";
$output = explode('@', $employee_id);
echo $output[0];