數組的概述
數組的基本概述
數組就是組數,就是一組數據。
數組的組成
Ø 鍵:在數組中[]內用於區分不同值的表示就是鍵
Ø 值:在數組中鍵對應的數據就是值
Ø 鍵值對:鍵+值就是鍵值對
Ø 下標:鍵就是下標
Ø 元素:元素就是鍵值對
數組的分類
Ø 索引數組:當數組的下標是數字的時候,那麼這個數組就稱爲索引數組
Ø 關聯數組:當數組的下標是字符串而不是數字的時候,這個數組就是關
聯數組。
Ø 混合數組:當數組的下標既有數字下標也有字符串下標的數組通常稱爲
混合數組。
數組的定義方式
使用語言結構來聲明數組
Ø 格式1:array(值1,值2,值3);
不指定下標的數組,下標是連續增長的數值。
Ø 格式2:array(鍵=>值,鍵=>值,鍵=>值);
指定下標,下標爲用戶指定的值(字符串 數組)
使用指定的語法聲明數組 (PHP版本>5.3)
Ø 格式1:數組變量=[值1,值2,值3];
不指定下標,聲明索引數組。
Ø 格式2:數組變量=[鍵=>值,鍵=>值,鍵=>值];
指定下標,下標爲用戶指定的值。
通過直接添加數組元素的方式聲明數組
Ø 格式1:
數組變量[] = 值
該方式聲明的數組下標爲從0開始連續得索引數組
Ø 格式2:
數組變量[下標] =值
使用添加元素的方式聲明數組,即可用聲明關聯數組,也可以聲明索引數組
數組的操作
查看數組所有內容
Ø 查看數組方式:
var_dump()或者使用print_r()兩種方式都可以查看數組
Ø 區別:
var_dump()和print_r()都是用於查看數組內容的方法,不同的是var_dump()輸出的數組的內容和類型,而print_r()僅輸出內容
注意:echo不能直接輸出一個數組
Ø 使用某個元素的內容
格式:數組變量[下標]
添加數組元素
Ø 方法1:數組變量[] = 值
該方式添加的元素一定是索引數組元素
添加時的下標是當前數組的最大索引下標+1
Ø 方法2:數組變量[下標] = 值
該方法既可以添加關聯數組,也可以添加索引數組
修改數組元素
數組變量[下標]=新值
刪除數組元素
Ø 刪除和清空指定數組:
unset(數組變量[下標])
Ø 刪除數組:
同時刪除數組的所有元素值和類型
unset(數組變量)
Ø 清空數組:
僅刪除數組的元素,不刪除類型
數組變量 = array();
數組的遍歷
遍歷數組格式
for($i=0;$i<count(數組變量);$i++){
循環體
}
注意:for循環只能遍歷連續得索引數組,不能遍歷關聯數組
count()統計數組中的元素個數或者說統計數組的長度
參數:要統計的數組變量
返回值:返回數組的長度
Ø 數組專用循環foreach循環布爾值循環
u 格式1:
foreach(數組變量as 鍵變量=>值變量){
循環體
}
遍歷數組,同時獲取鍵和值。
u 格式2:只使用值 不使用 下標
foreach(數組變量as 值變量){
循環體
}
遍歷數組,只獲取值。
數組的其他遍歷方式
Ø 使用while 聯合list遍歷數組
u list()用一索引數組爲一組變量賦值
參數:需要賦值的變量名稱
返回值:返回指定的數組
Ø each()返回當前數組指針指向的元素,並且將數組指針向後移動一位
參數:要獲取當前元素的數組變量
返回值:如果數組指針指向的有值,返回一個數組,數組中包含4 個元素,0下標對應當前元素的鍵,key下標對應當前元素的鍵,1下標對應當前元素的值,value下標對應當前元素的值。
注意:如果數組指針已經指向到末尾則返回false
Ø reset()將數組的內部指針指向第一個單元
參數:需要重置指針的數組變量
返回值:返回數組第一個單元的值,如果數組爲空則返回false
Ø end()將數組的內部指針指向最後一個單位
參數:需要的數組變量
返回值:返回數組中最後一個單元的值
Ø next()將數組中的內部指針向後(前)移動一位
參數:需要移動指針的數組變量
返回值:返回移動後指針指向的值,如果沒有則返回false
Ø prev()將數組的內部指針倒回一位
參數:需要移動指針的數組變量
返回值:返回移動後指針指向的值,如果沒有則返回false
Ø key()獲取數組中當前元素的鍵
參數:數組變量
返回值:返回指針指向的鍵
Ø current()獲取數組中當前元素的值
參數:數組變量
返回值:返回指針指向的值
與數組相關的概念
一維數組
如果數組中的所有元素的值都是除了數組之外的類型,那麼這個數組就是一維數組
二維數組
一個一維數組的元素具有另外一個一維數組的時候,該數組就是一個二維數組
Ø 查找二維數組中某個元素值:
數組變量[下標][下標]
多維數組
在二維數組的基礎上,如果其中元素的值還是數組類型,那麼這個數組就是一個多維數組。
Ø 查找多維數組中的某個元素值:
數組變量[下標][下標][下標]....
系統預定義變量
系統預定義變量是系統提供的一些數據變量,這些變量都是數據類型
Ø $_GET[] 接受頁面以GET方式提交的數據(url,表單)
注意:如果表單中數據是使用get方式提交的,那麼表單中action屬性後面不能在加入參數,因爲表單中的數據會覆蓋action屬性後面的數據
Ø $_POST[] 接受頁面以post方式提交的表單數據
Ø $_SERVER[] 返回服務器和執行環境信息
$_SERVER['QUERY_STRING']返回訪問當前頁面的參數
$_SERVER['HTTP_REFERER']如果上一個頁面地址存在,則返回上一個頁面地址
Ø $_COOKIE[]
Ø $_SESSION[]
Ø $_FILES[]
Ø $GLOBALS[] 引用全局作用域中可用的全部變量一個包含了全部變量的全局組合數組,變量的名字就是數組的鍵。