數組中的運用
通過foreach來遍歷一個數組(重要,要求掌握)
語法:foreach(數組名 as $value)
還有一個用法:語法:
Foreach(數組名 as $key =>$value)
3)list()和each()
List():將數組裏面的值賦值給變量
語法:
List(變量1,變量2,變量3) = 數組名
如果想要跳過某些值,直接使用空的逗號就可以了
List是能用於索引數組,不能用於關聯數組
Each():會返回一個數組,這個數組裏面有4個鍵,0,1,key,value。
0和key是一樣,1和value是一樣
Each()每使用一次,數組的指針就會向後偏移一次
通過while(),each(),list()來遍歷一個數組
4)在PHP裏面,PHP系統提供了一套關於操縱數組指針的函數
Current():取得當前指針位置的數組值
Key():取得當前指針位置的鍵名
Next():向後移動一位指針
Prev():向前移動一位指針
End():直接將數組指針跳到最後
Reset():重置數組指針,將指針移到最開頭的地方
5. 預定義數組
所謂預定義數組,就是php系統已經給你定義好了的數組,直接使用就可以了。
$GLOBALS:首先這是一個系統定好了數組。當你每創建一個全局變量的時候,這個全局變量就會被放到$GLOBALS數組裏面,是一個關聯數組,數組的鍵名就是變量名,數組的值就是變量值
在函數裏面如果要使用全局變量,也可以通過$GLOBALS這個全局數組
6. 數組相關函數
① 數組鍵值相關函數
Array_values():返回一個新數組,數組裏面裝的是之前數組所有元素的值
Array_keys():返回數組中鍵名
Array_keys()函數還有一個作用,就是找到指定元素的鍵名
Array_keys還支持嚴格模式,最後一個參數可以傳入true或者false,如果為true,則開啟嚴格模式
In_array():檢查一個數組裏面是否存在某一個值,返回值為true或者false
In_array(查找值,數組名,是否嚴格)
Array_search():和
還有一個擴展函數:array_key_exists():檢測給定的鍵名是否存在於數組
Array_flip():用於交換數組裏面的鍵和值
Array_reverse():反轉數組,將原來數組的元素順序進行反轉
② 統計相關的數組函數
Count():統計數組裏面元素的個數
該函數後面可以跟一個可選參數,true|false
是否統計多維數組的個數。
Array_count_values():統計一個數組裏面所有值出現的次數,返回一個新數組,新數組的鍵名就是之前數組的元素名,新數組的值就是出現的次數
次數由高到低排列
Array_unique():用於刪除數組中的重復值,並返回新的數組,新數組的鍵名不會發生改變,只會保留第一個鍵名,其他的被刪除
① 使用回調函數處理數組元素
Array_filter():可以自己寫一個函數對數組的元素進行過濾
語法:array_filter(數組名,”函數名”)
Array_walk():將一個數組裏面的所有元素應用到某一個函數裏面去
回調函數可以接受3個參數(數組的值,數組的鍵名,函數參數)
Array_map():確實和array_walk功能比較相像,但是他們兩個也是有區別的, 首先就是傳遞參數上面的區別
Array_map(”函數名”,要處理的數組1,要處理的數組2,要處理的數組3…)
返回值上面也是有區別:array_walk的返回值只有2個,要麽執行成功就是true,要麽執行失敗就是false。但是array_map是返回一個新的數組,新數組裏面裝的就是回調函數處理好了的元素
Array_map多多個數組進行處理
② 數組排序相關的函數
在Php裏面系統給我們提供了一套數組排序函數
Sort()和rsort():這兩個算是一組函數,sort是從小到大排序,rsort是從大到小排序
Asort和arsort:這兩個也是一組函數,功能上和上面的那一組函數功能是一樣,唯一的區別就是會保留原來數組的鍵名
Ksort和krsort:根據鍵名來對數組進行排序
自然排序法進行排序:
Natsort():根據自然排序法來進行排序
Natcasesort():根據自然排序法來進行排序,忽略大小寫
③ 數組拆分,合並,分解相關函數
Array_slice(數組名,開始值,截取的個數,[true|false]):截取數組裏面的一部分
如果最後一個參數設為true,保留原來的鍵名,否則不保留,默認就是false
如果是關聯數組,默認就是返回原來的鍵名
Array_splice(): 刪除一系列元素,而且可以選擇是否用新的值來替換被刪除的元素
Array_combine():合並兩個數組來創建一個新的數組。其中一個數組是鍵名,另外一個是新數組的元素值
Array_merge():合並兩個數組,如果鍵名有重復的,後面的會覆蓋前面的
Array_merge()還有一個作用,就是對索引數組重新進行索引
Array_intersect():用於計算數組的交集
可以計算多個數組的交集
Array_diff():剛好和上面的函數相反,求函數的差集,返回一個數組,該數組包括了所有在 array1 中但是不在任何其它參數數組中的值。註意鍵名保留不變。
多個數組的情況
④ 數據結構相關函數
Array_push和array_pop:這兩個可以算作是一組函數
Array_push:往數組的末端添加新的一個或者多個元素
Array_pop():刪除數組最後一個元素,返回值為彈出的元素
Array_shift和array_unshift:剛才上面一組函數是在數組的尾部進行操作,這組函數是在數組的首部進行操作
array_unshift:往數組的首端添加新的一個或者多個元素
Array_shift():刪除數組第一個元素,返回值為彈出的元素
⑤ 其他數組相關函數
Array_rand():從一個數組裏面隨機取出一個或者多個元素並返回,返回的是元素的鍵名
Shuffle():將數組中元素的順序打亂,鍵名也會重新被排號。
Range(起始值,結束值,間隔):創建一個指定範圍的數組
Array_sum():計算數組中值的總和
PHP其他相關知識
在PHP裏面,數組可以使用(+,==,===)來進行計算。
加法運算:兩個數組可以進行相加操作,相加操作實際上就是合並2個數組,如果鍵名重復,只保留前面的元素,後面的被舍棄掉。
鍵名相同,後面的元素被舍棄
Array_merge():如果輸入的數組中有相同的字符串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。
==和===
==:如果兩個數組具有相同的鍵值對,則返回TRUE
===:如果兩個數組具有相同的鍵值對,鍵值對的數據類型也相同,順序也相同,則返回true
刪除數組中元素
想要刪除數組裏面的元素,使用unset()
數組中的運用