PHP中如何从动态数组的字符串提取短横线后的内容?
PHP提取短横线后内容的实现方法
可用函数及示例
方法1:使用explode()函数
explode()可将字符串按指定分隔符拆分为数组,取数组最后一个元素即可得到短横线后的内容,是单分隔符场景下最简洁高效的方案。示例代码:
$arr = [ '18572834-2.2.2.4', '185-2.1' ]; $result = array_map(function($item) { $parts = explode('-', $item); return end($parts); }, $arr); print_r($result);
输出结果:
Array ( [0] => 2.2.2.4 [1] => 2.1 )
方法2:使用strstr()函数
strstr()会返回字符串中从指定字符开始到结尾的部分,配合ltrim()去除开头的短横线即可:
$arr = [ '18572834-2.2.2.4', '185-2.1' ]; $result = array_map(function($item) { return ltrim(strstr($item, '-'), '-'); }, $arr); print_r($result);
方法3:使用正则表达式preg_match()
如果需要处理含多个短横线的复杂场景,正则表达式能精准匹配最后一个短横线后的内容:
$arr = [ '18572834-2.2.2.4', '185-2.1' ]; $result = array_map(function($item) { preg_match('/-([^-]+)$/', $item, $matches); return $matches[1] ?? ''; }, $arr); print_r($result);
注意事项
- 若字符串仅含一个短横线,优先选择
explode(); - 若存在多个短横线,上述三种方法均能提取最后一个短横线后的内容;
preg_match()方案需处理匹配失败的情况(示例中用?? ''兜底)。
内容的提问来源于stack exchange,提问作者begadang nyok
相关产品推荐
相关产品推荐

