分割字符串---explode,is_numeric

案例:将字符串中的数字相加

$str = "15,123,58,abc,89,dde,23,6,f"; 

第一步:将各值放在一个数组中,也就是说’,'在这里是分割字符串的分割符,我们可以利用它。
explode
explode使用一个字符串分割另一个字符串,此函数返回由字符串组成的数组。
array explode ( string $delimiter , string $string [, int $limit ] )
delimiter :边界上的分隔字符。
string :输入的字符串。
第二步:我们使用explode分割

$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 )
注:我们将我们需要的值放到了数组中

第三步:遍历数组,哪一些是数字,哪一些是字符串,要程序识别出来。

$str = "15,123,58,abc,89,dde,23,6,f"; 
$arr = explode(',',$str); 
print_r($arr);
foreach($arr as $v){
     var_dump($v);)     
}

输出结果:E:\09zhangzhe\php\www\ch4\demo10.php:12:string ‘15’ (length=2)
15是数字字符串
E:\09zhangzhe\php\www\ch4\demo10.php:12:string ‘123’ (length=3)
123是数字字符串
E:\09zhangzhe\php\www\ch4\demo10.php:12:string ‘58’ (length=2)
58是数字字符串
E:\09zhangzhe\php\www\ch4\demo10.php:12:string ‘abc’ (length=3)
abc是数字字符串…

第四步:输出结果是string,所以我们采用is_numeric,接下来需要分清哪一些数,哪一些可以相加。

$str = "15,123,58,abc,89,dde,23,6,f"; 
$arr = explode(',',$str); 
print_r($arr);
foreach($arr as $v){
    if(is_numeric($v)){
        echo $v."是数字字符串".'<br>';
    }else{
    	 echo $v."不是数字字符串".'<br>';
    }
}

输出结果:Array ( [0] => 15 [1] => 123 [2] => 58 [3] => abc [4] => 89 [5] => dde [6] => 23 [7] => 6 [8] => f ) 15是数字字符串
123是数字字符串
58是数字字符串
abc不是数字字符串
89是数字字符串
dde不是数字字符串
23是数字字符串
6是数字字符串
f不是数字字符串

第五步:我们将数字的字符串相加

$str = "15,123,58,abc,89,dde,23,6,f"; 
$arr = explode(',',$str); 
$sum = 0;
foreach($arr as $v){
      if(is_numeric($v)){
           $sum += $v;
            }
}
echo $sum;   

输出结果:314

经验:
从这个案列我们可以知道:
1.explode用分割符号来分割字符串,得到数组。分割符号可以是’ , ',也可以是别的符号,分割以后得到一个数组。然后我们遍历得到每一个元素的值。
2.is_numeric检测变量是否是数字
is_bool 检测变量是否是布尔型
is_int 检测变量是否是整数
is_ing is_int的别名
is_string 检测变量是否是字符串
is_array 检测变量是否是数组

猜你喜欢

转载自blog.csdn.net/weixin_43587078/article/details/84031804
今日推荐