PHP入門之數組

前言

以前幾篇文章分別介紹了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 結果以下圖:

小結

上面對數組進行了簡單的介紹,但願對你們有所幫助。

相關文章
相關標籤/搜索