分割字符串就是将字符串按照指定的分割符将其进行分割成多个小字符串
我们下面通过一个案例来了解分割字符串
我们定义一个字符串
$str="15,123,58,abc,89,dde,23,6,f";
$str是我们定义的字符串,我们要做的是将字符串里面的数字进行相加,最后得出求和的结果
从上面的字符串可以看出来,其中abc,dde,f 是会被排除的
我们可以将这个字符串分割成多份放在数组里,那么我们怎么进行分割呢,这时候就要用到他们共有的分割符——“,”了
在数组函数中explode的作用是:使用一个字符串分割另一个字符串;我们可以用这个函数来进行字符串的分割。
explode有两个参数,第一个参数存放分割符,第二个参数存放要进行分割的字符串,它返回的值是一个数组
我们来看一个小例子:
<?php
header('content-type:text/html;charset=utf-8');
$pizza="piece1 piece2 piece3 piece4 piece5 piece6";
$pieces=explode(" ",$pizza);
print_r $pieces;
我们定义了一个数组,我们可以将空格作为他们的分割符,将分割后的结果放在数组$pieces中;输出的$pieces是一个数组
回到我们的题目:将字符串$str进行分割:
$arr=explode(",",$str);
print_r($arr);
变量$arr将$str分割成数组,他们的返回类型都为String类型,但是仍然有一些字符串不是数字字符串,不能进行相加,那么我们就需要用到遍历数组foreach了
foreach ($arr as $value){
}
将遍历的结果放在变量$value中,仅仅遍历数组是不够的,我们还需要进行判断,如果不是数字字符串的是不进行相加的,我们要用到函数is_numeric;它的作用是:检测变量是否为数字或数字字符串;代码如下
$sum=0;
foreach($arr as $value){
if(is_numeric($value)){
$sum+=$value;
}
}
echo $sum;
首先我们定义了一个变量给它初始值为0;将我们的判断条件放在foreach里,确保每个元素都能进行判断,将符合条件的元素相加,最后输出我们的变量$sum,$sum求出来的值为数字字符串的和
最主要的还是要掌握分割函数explode的运用:用分割符来对字符串进行分割
我们也可以拓展一下,多了解一些函数;比如:is_bool:检测是否为布尔型; is_int:检测是否是整数; is_integer:is_int的别名; is_string:检测变量是否是字符串; is_array:检测变量是否是数组
这些函数的用法和is_numeric的用法是一样的。