Php 删除数组中前面的所有内容(包括特殊字符)
是否可以删除特殊字符之前的所有内容,包括Php 删除数组中前面的所有内容(包括特殊字符),php,arrays,Php,Arrays,是否可以删除特殊字符之前的所有内容,包括数组中的此字符 例如,SUBSTR()函数在字符串中使用 $a= ('1-160'); echo substr($a,strpos($a,'-')+1); //output is 160 数组的任何函数,如SUBSTR()?(最低优先级为preg\u replace) 这里数组的结构如下例所示,每个索引由intvalue+hyphen(-) 我需要更改在连字符和连字符之前删除每个值 $a= array('160','250', '380'); 实际上,
数组中的此字符
例如,SUBSTR()
函数在字符串中使用
$a= ('1-160');
echo substr($a,strpos($a,'-')+1);
//output is 160
数组的任何函数,如SUBSTR()
?(最低优先级为preg\u replace
)
这里数组的结构如下例所示,每个索引由int
value+hyphen(-)
我需要更改在连字符和连字符之前删除每个值
$a= array('160','250', '380');
实际上,我的要求是对数组中连字符(-)
之后的所有值求和。如果可以删除连字符(-)
,则可以按如下操作
echo array_sum($a);
//output is 790
但是,由于特殊的字符,我按如下方式生成输出
$total = 0;
foreach($a AS $val){
$b = explode('-',$val);
$total += $b[1];
}
echo $total;
//output is 790
我正在寻找尽可能短而快的方法。使用应该可以
<?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));
使用应该可以正常工作
<?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));
虽然您已经有了答案,但这是供您参考的
array_sum(array_map(function ($item) {return explode('-', $item)[1];}, $a));
虽然你已经有了答案,但这是供你参考的
array_sum(array_map(function ($item) {return explode('-', $item)[1];}, $a));
你目前的方法有什么问题?@TimBiegeleisen,array\u sum
比explode
和增值要快,不是吗?所以我想知道,在我的情况下,我能做array\u sum
吗。preg\u grep和array\u sum但是我怀疑它会更快你的数据集有多大?如果不是很大,很可能不会有任何明显的性能差异。您当前的方法有什么问题吗?@TimBiegeleisen,array\u sum
比explode
和增值都要快,不是吗?所以我想知道,在我的情况下,我能做array\u sum
吗。preg\u grep和array\u sum但是我怀疑它会更快你的数据集有多大?如果不是很大,很可能不会有任何明显的性能差异。是的!!干净的方式。是的!!干净的方式。