将字符串中的数字相加
思路:1.需要将各个值放到数组中,' , '相当于各个字符的分割符,将各个值拆分出来,用分割符号来分割字符串,得到数组;
2.需要遍历数组,看看哪些属于数值(只是将数值进行相加的运算),需要弄清楚哪些属于数值,哪些属于字符串(需让程序识别出来)
注:其它字符(不是数字的),不进行相加运算
1.用分割符号来分割字符串,得到数组
<?php
header('content-type:text/html;charset=utf-8');
$str = "15,123,58,abc,89,dde,23,6,f";
$arr = explode(',',$str);
print_r($arr);//分割后的结果
输出结果:
Array ( [0] => 15 [1] => 123 [2] => 58 [3] => abc [4] => 89 [5] => dde [6] => 23 [7] => 6 [8] => f )
2.检测变量是否为数字或数字字符串
<?php
header('content-type:text/html;charset=utf-8');
$str = "15,123,58,abc,89,dde,23,6,f";
$arr = explode(',',$str);
//print_r($arr);
$sum = 0;
foreach($arr as $value){
//var_dump($value);//字符串
if(is_numeric($value)){
echo $value . '是数字字符串' . '<br>';
}else{
echo $value . '是普通的字符串' . '<br>';
}
}
输出结果:
输出结果为:
123是数字字符串
58是数字字符串
abc是普通的字符串
89是数字字符串
dde是普通的字符串
23是数字字符串
6是数字字符串
f是普通的字符串
3.求和
<?php
header('content-type:text/html;charset=utf-8');
$str = "15,123,58,abc,89,dde,23,6,f";
$arr = explode(',',$str);
// print_r($arr);
$sum = 0;
foreach($arr as $value){
if(is_numeric($value)){
$sum += $value;
}
}
echo $sum;
314
explode — 使用一个字符串分割另一个字符串
语法:array explode ( string $delimiter , string $string [, int $limit ] )
此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。
delimiter 边界上的分隔字符。
string 输入的字符串。
limit 如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。
如果 limit 参数是负数,则返回除了最后的 - limit 个元素外的所有元素。
如果 limit 是 0,则会被当做 1。
explode() 例子 :
<?php
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6" ;
$pieces = explode ( " " , $pizza );
echo $pieces [ 0 ]; // piece1
echo '<br>';
echo $pieces [ 1 ];
输出结果为:
piece1
piece2
is_numeric — 检测变量是否为数字或数字字符串
语法:bool is_numeric ( mixed $var )
如果 var 是数字和数字字符串则返回 TRUE ,否则返回 FALSE