字符串中的数字相加

将字符串中的数字相加
思路: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 
 

猜你喜欢

转载自blog.csdn.net/qq_43628350/article/details/84032715