是否可以删除特殊字符之前的所有内容,包括array
中的该字符?
例如,在字符串中使用SUBSTR()
函数
$a= ('1-160');
echo substr($a,strpos($a,'-')+1);
//output is 160
像SUBSTR()
这样的数组有函数吗? (最低优先级为preg_replace
)。
这里的数组结构如下例,每个索引包含int
值+ hyphen(-)
$a= array('1-160','2-250', '3-380');
我需要更改删除连字符和连字符之前的所有值
$a= array('160','250', '380');
实际上,我的要求是对数组中hyphen(-)
之后的所有值求和。如果hyphen(-)
可以删除,则可以通过
echo array_sum($a);
//output is 790
但是,由于特殊字符,我按以下方式生成输出。
$total = 0;
foreach($a AS $val){
$b = explode('-',$val);
$total += $b[1];
}
echo $total;
//output is 790
我正在搜索尽可能简短的方法。
答案 0 :(得分:1)
<?php
$a = ['1-160','2-250', '3-380'];
$result = [];
foreach($a as $b) {
$result[] = substr(strstr($b, '-'), 1); // strstr => get content after needle inclusive needle, substr => remove needle
}
var_dump($result);
var_dump(array_sum($result));
答案 1 :(得分:1)
尽管您已经有了答案,但仅供参考。
array_sum(array_map(function ($item) {return explode('-', $item)[1];}, $a));