字串中的數字相加
將字串中的數字相加
思路: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