什麼是數組?
數組是一個數據的集合,相當於一個容器,可以將數據按一定的規則存到這個容器中。相當於旅館,旅館內有很多房間,而房間按照一定的規則編號。
數組的構成:基本結構形式如下:
$數組名 (鍵)= 值 數組名:是一個數組區別於另一個數組的方式,就像每個旅館都有一個名字。
鍵(key):也成為指針、索引或者標識符。鍵代表某值在數組中存放的位置,相當於旅館的門牌號,可以用不同方式命名。通過查詢鍵可以找到相應的值。
值(value):值相當於房間內存放的東西。
賦值創建數組
在php中,創建數組有變量賦值和調用函數兩種方法,這裡先講前者。
使用變量賦值方法很簡單,直接給一個數組變量賦值即可。
實例:
代碼如下 復制代碼<?php
$lang[]="php";
$lang[]="html";
$lang[]="css";
echo "$lang[0] <br>";
echo "$lang[1] <br>";
echo "$lang[2] <br>";
?>
三個賦值語句產生的數組內容:
0=>php
1=>html
2=>css
創建數組
除了上面介紹的賦值創建數組,還有調用函數的方法創建數組。
php提供了array函數來穿件一個數組,基本結構形式如下:
array (item1,item2... ,itemn)
/* item表示數組中的元素值。array()函數創建數組時自動給元素值分配標識符,從0依次增加 */
實例:
<?php
$student=array("Tom","Jacky","Rose");
echo $student[0] ."t";
echo $student[1] ."t";
echo $student[2];
?>
數組鍵名
1、鍵名分配
在用array()函數創建數組時,鍵名會自動分配到各個值。另外,我們也可以按自己的需要直接給元素分配鍵名。
基本結構形式:
array ( key => item )
實例1:
代碼如下 復制代碼 <?php2、用字符串作鍵名
不但可以用整數作為鍵名,也可以使用字符串作為鍵名。使用字符串作為鍵名的數組成為字符串索引(string-indexed)數組。
實例2:
代碼如下 復制代碼 <?php3、鍵名的修改
實例3:
代碼如下 復制代碼<?php
$arr = array("a" => "新浪",
"b"=>"網易",
"c" => "騰訊", "雅虎"
);
$arr[a] = "PHP中文社區";
$arr['e'] = "新浪";
$arr[] = "百度";
echo $arr['a'] ."<br>";
echo $arr['b'] ."<br>";
echo $arr['c'] ."<br>";
echo $arr['e'] ."<br>";
echo $arr[0] ."<br>";
echo $arr[1] ."<br>";
?>
創建多維數組
在php程序編寫時,一維數組有時不能滿足需求,這時就要用到多維數組。多維數組就是在一維數組的基礎上再增加一個或多個細下標,用法與一維數組大致相同,只是多維數據操作更為復雜,不過功能更強大。
以二維數組為例,就像大房子裡面套有小房子,表示方法為$a[0][0]。
實例:
代碼如下 復制代碼<?php
$a[0][0]=1;
$a[0][1]=2;
$a[0][2]=3;
$a[1][0]=4;
$a[1][1]=5;
$a[1][2]=6;
for($i=0;$i<=1;$i++){
for($j=0;$j<=2;$j++){
echo "$a[$i][$j]=" .$a[$i][$j] ."<br>"; /* "$"表示輸出變量符號$ */
}
}
?>
輸出數組
輸出數組是指將數組的的所有元素數據顯示在浏覽器上,php怎麼輸出數組?常用的php輸出數組函數有var_dump()和print_r()函數。
1、var_dump函數遞歸展開數組元素,顯示數組各元素的類型、鍵名和元素值。
實例1:
代碼如下 復制代碼 <?php2、print_r函數值顯示數組元素的鍵名和元素值。
實例2:
代碼如下 復制代碼
<?php
$b=array(1,2,3);
print_r($b);
?>
測試數組
有時候我們不清楚某個變量是不是數組,可以用is_array()函數來測試判斷。
基本結構形式:
is_array ( 變 量 )
檢測變量是否數組,如果是則返回true,否則返回false。
實例:
代碼如下 復制代碼<?php
$a="apple iphone";
if(is_array($a)){
var_dump($a);
}
else echo "不是數組";
?>
foreach遍歷數組
我們在運用數組時,常常要遍歷數組並獲得各個鍵或者元素值,php提供了一些專門遍歷數組的函數。這裡先介紹foreach遍歷數組函數的用法。
結構形式:
代碼如下 復制代碼
foreach ( array_expression as $value ) statement
/* array_expression是要遍歷的數組
as作用是將數組的值賦給$value
statement是後續語句
*/
實例1:
<?php
$color=array('white' => '白色' ,
'black' => '黑色' ,
'red' => '紅色' ,
'green' => '綠色',
'yellow' => '黃色');
foreach( $color as $c) echo $c ."<br>";
?>
通過foreach不僅可以獲得元素的值也可以獲得鍵名,結構形式:
foreach ( array_expression as $key => $value ) statement
將以上實例中第7行的代碼:
代碼如下 復制代碼
foreach( $color as $c) echo $c ."<br>";
改為:
foreach( $color as $key => $c) echo $key.$c ."<br>";
查找數組元素值
php獲取數組鍵名可以用array_search()來實現,結構形式如下:
array_search( $needle,$haystack )
/* 參數$needle表示要查找的值 */
/* $haystack表示查找對象 */
array_search()函數返回的是鍵名,而不是布爾值,找不到時返回false。找到的元素如果正好是第一個元素,則返回0。而php會自動轉化成false,所以需要使用”===”判斷返回值。(“===”判斷是否全等,詳:php關系運算符)
實例:
代碼如下 復制代碼<?php
$s=array("a","b","c","d","e","f");
$i=array_search("a",$s); /* 查找數組是否有字符"a" */
if($i===false) /* 判斷查找結果 */
echo "在數組s中找不到字符'a'";
else echo "輸出數組$s的鍵名:" .$i; /* 輸出鍵名 */
?>
計算數組元素個數
數組也像變量一樣可以進行運算,例如需要php統計數組元素個數時,我們可以利用count()函數來計算數組中元素的個數。
結構形式:
代碼如下 復制代碼
count ( $var,$mode )
/* $var參數$var通常是一個數組,函數返回var中的單元數目 */
/* mode是可選參數 */
實例:
<?php
$a=array("peple","man","women");
$b=count($a); /* 統計數組元素個數 */
echo $b;
?>
數組排序
php提供了一系列的數組排序函數,我們可以根據需要對數組進行排序。數組的排序主要有三種方式:
按鍵值排序
即按標識符ASCⅡ碼值的大小排列順序。
ksort(): 按照數組標識符順序排列
krsort(): 按照數組標識符逆序排
實例1:
按元素值排序
asort(): 按照由小到大的順序對數組排序;
rsort(): 按照由大到小的順序對數組逆序排序。
將實例1的8-11行代碼改為:
代碼如下 復制代碼 asort($languages);
刪除原有鍵名排序
sort(): 按照由小到大的順序對數組排序;
rsort(): 按照由大到小的順序對數組逆序排序。
將實例2的8-11行代碼改為:
代碼如下 復制代碼
sort($languages);
foreach($languages as $key=>$val){
echo "languages[$key] = $val".'<br>';
};
數組運算符
合並數組計算實例:
代碼如下 復制代碼 <?php數組的比較實例:
代碼如下 復制代碼 <?php