以前幾篇文章分別介紹了PHP的運算符,流程控制,函數。有興趣的能夠去看看。
PHP入門之類型與運算符
PHP入門之流程控制
PHP入門之函數
接下來簡單介紹一下數組。php
爲何要引進數組,由於若是有一個需求,有好幾十個數據須要統計,計算,若是不用數組,那麼就要定義好幾十個變量,這樣是不合理的。因此引進了數組的概念。
下面用一個案例入門:若是如今有6個數據,要求他們的和還有平均數。這裏使用數組。
代碼以下:html
<?php $sums[0]=10; $sums[1]=11; $sums[2]=12.6; $sums[3]=24; $sums[4]=56; $sums[5]=28; $allsums=0; #count系統函數是用來統計數組個數的。 for ($i=0;$i<count($sums);$i++){ #這裏使用for循環遍歷數組,也能夠while循環和do while 循環,均可以。 echo '<br/>'.$sums[$i]; # 可是使用這三個循環遍歷,鍵值不能改,默認的0、一、2等等,只能是數字 $allsums+=$sums[$i]; # 若是想自定義鍵值,那麼就要使用foreach()來遍歷數組。 } echo '<br/>'.$allsums; #求總數 echo '<br/>'.$allsums/count($sums); #求平均數 ?>
理清楚幾個概念,用$sums[0]=10來舉例
[0] 這個咱們叫下標或者關鍵字。
$sums[0] 這個咱們叫作數組的一個元素。
10 這個咱們叫作$sums[0]對應的值。
$sums 這個叫作數組的名稱。
還有就是元素存放的值能夠是任何數據類型。
舉個例子web
<?php $arr[0]=123; $arr[1]=34.789; $arr[2]="hello"; for($i=0;$i<count($arr);$i++){ #能夠正常輸出 : 123 34.789 hello echo '<br/>'.$arr[$i]; } ?>
第二種建立數組的方法。
舉個例子數組
<?php $arr=array(123,34.789,"hello"); for ($i=0;$i<count($arr);$i++){ echo '<br/>'.$arr[$i]; #能夠正常輸出 : 123 34.789 hello } ?>
第三種方法建立數組的方法
舉個例子:函數
$arr['logo']="123"; $arr['haha']=34.789; $arr['qqq']="hello";
或者
$arr=array("logo"=>123,"haha"=>34.789,"qqq"=>"hello");
這樣的話遍歷就用foreach()用來遍歷。
代碼以下post
foreach ($arr as $key=>$val){ echo "<br/>$key=$val"; }
數組中鍵對應的值能夠修改,例子以下:ui
$arr=array("logo"=>123,"haha"=>34.789,"qqq"=>"hello"); $arr['logo']="lxf"; foreach ($arr as $key=>$val){ echo "<br/>$key=$val"; } echo '<br/>'.$arr['logo'];
咱們能夠用print_r()
或者var_dump()
來顯示這個數組。
上面的例子顯示以下:
Array ( [logo] => lxf [haha] => 34.789 [qqq] => hello )
array(3) { ["logo"]=> string(3) "lxf" ["haha"]=> float(34.789) ["qqq"]=> string(5) "hello" }
若是一個數組爲$arr=array(11,33,44);
咱們輸出 echo $arr[3];由於沒有這個鍵值,因此會報一個錯誤,在php中不算致命錯誤,其餘好比Java是致命錯誤, 這個錯誤叫數組越界。
php語言中,數組能夠動態增加,舉個例子。code
$arr=array(4,7,9); $arr[3]=466; echo $arr[3];
在這個例子中,會輸出466,不會報錯。
與PHP數組相關的幾個重要函數
(1)count函數
統計數組元素個數
(2)is_array函數
用來肯定是否是數組,舉個例子。orm
$arr=array(12,34,24); echo is_array($arr); #這裏會返回1爲真。若是 $arr=123; echo is_array($arr); #這裏會返回空,爲假。
(3)拆分字符串explode("按照什麼拆分",字符串),舉個例子htm
$str="老大,老二,老三,老四"; $arr=explode(",",$str); print_r($arr);
輸出結果爲:
#由字符串變爲數組了。 Array ( [0] => 老大 [1] => 老二 [2] => 老三 [3] => 老四 )
若是要刪除某個元素的鍵-值對須要使用unset()函數,須要注意的是,刪除後不會從新創建索引。舉個例子:
$arr=array(1,2,5,8); unset($arr[2]); print_r($arr);
輸出結果爲:
unset也能夠銷燬某個變量
Array ( [0] => 1 [1] => 2 [3] => 8 )
能夠同時刪除多個
$arr=array(1,2,5,8); unset($arr[2],$arr[3]); print_r($arr);
輸出結果爲:
Array ( [0] => 1 [1] => 2 )
數組運算符
$a + $b 聯合 $a 和 $b 的聯合。
$a == $b 相等 若是 $a 和 $b 具備相同的鍵/值對則爲 TRUE。
$a === $b 全等 若是 $a 和 $b 具備相同的鍵/值對而且順序和類型都相同則爲 TRUE。
$a != $b 不等 若是 $a 不等於 $b 則爲 TRUE。
$a <> $b 不等 若是 $a 不等於 $b 則爲 TRUE。
$a !== $b 不全等 若是 $a 不全等於 $b 則爲 TRUE。
要求:將輸入的數據所有輸出,並求平均值。
array1.php <html> <head> <title>數組練習</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <h1>輸入6個數據,空格隔開</h1> <form action="array2.php" method="post"> <input type="text" name="sum"> <input type="submit" value="提交"> </form> </body> </html>
array2.php
<?php $sums=$_POST['sum']; $arr=explode(" ",$sums); $allarr=0; foreach ($arr as $key=>$val){ $allarr+=$val; #遍歷數組 echo '<br/>'."第"."$key"."=".$val; } #求總數 echo '<br/>'."總和=".$allarr; #求平均值 echo '<br/>'."平均數=".round($allarr/count($arr),2); ?> <br/><a href="array1.php">返回初頁面</a>
下面輸入13 34 67 89 89 27 結果以下圖:
上面對數組進行了簡單的介紹,但願對你們有所幫助。