1. 程式人生 > >字串中的數字相加

字串中的數字相加

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