我需要获取下划线 _
之前的字符串,但是我的尝试没有正常工作。以下是存储在变量 $b
中的输入值列表:
vendor_code
vendor_name
hotel_name_0
hotel_room_type_0
hotel_in_date_0
...
vendor_code
vendor_name
hotel_name_N
hotel_room_type_N
hotel_in_date_N
这是我尝试过的方法:
$a = [
'vendor_code',
'vendor_name',
'hotel_name_0',
'hotel_room_type_0',
'hotel_in_date_0'
];
foreach ($a as $b) {
echo substr($b, 0, -(strlen(strrchr($b, '_')))), PHP_EOL;
}
代码几乎完美,但对于那些没有结尾的
_N
的情况失败了,因为它会删除原始字符串的一部分(请参见下面的输出)。vendor
vendor
hotel_name
hotel_room_type
hotel_in_date
一个有效的输出应该如下所示:
vendor_code
vendor_name
hotel_name
hotel_room_type
hotel_in_date
这意味着我需要删除最后一个
_N
之后的所有内容。有人能给我一些建议吗?
_
需要作为分隔符?例如,hotel_in_date_0
应该返回去掉0
的hotel_in_date
,还是应该返回hotel
、in
、date
、0
等等。 - Robert_N
总是一个数字吗? - Alexander GuzN
应该总是一个数字,但为了确保,如果需要的话,我可以对其进行检查。 - ReynierPM