删除数组中的所有内容(包括特殊字符)

时间:2018-11-29 06:36:57

标签: php arrays

是否可以删除特殊字符之前的所有内容,包括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

我正在搜索尽可能简短的方法。

2 个答案:

答案 0 :(得分:1)

strstrsubstr应该很好用

<?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));

https://3v4l.org/2HsAK

答案 1 :(得分:1)

尽管您已经有了答案,但仅供参考。

array_sum(array_map(function ($item) {return explode('-', $item)[1];}, $a));