1. 程式人生 > >數組中的運用

數組中的運用

() _array 維數 關於 == prev 支持 而且 回調

通過foreach來遍歷一個數組(重要,要求掌握)

語法:foreach(數組名 as $value)

還有一個用法:語法:

Foreach(數組名 as $key =>$value)

3list()each()

List():將數組裏面的值賦值給變量

語法:

List(變量1,變量2,變量3) = 數組名

如果想要跳過某些值,直接使用空的逗號就可以了

List是能用於索引數組,不能用於關聯數組

Each():會返回一個數組,這個數組裏面有4個鍵,0,1keyvalue

0key是一樣,1value是一樣

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():和

in_array()功能基本一模一樣,連傳入的參數都是一樣的,只不過返回值不一樣,返回的是元素的鍵名

還有一個擴展函數: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是從大到小排序

Asortarsort:這兩個也是一組函數,功能上和上面的那一組函數功能是一樣,唯一的區別就是會保留原來數組的鍵名

Ksortkrsort:根據鍵名來對數組進行排序

自然排序法進行排序:

Natsort():根據自然排序法來進行排序

Natcasesort():根據自然排序法來進行排序,忽略大小寫

數組拆分,合並,分解相關函數

Array_slice(數組名,開始值,截取的個數,[true|false]:截取數組裏面的一部分

如果最後一個參數設為true,保留原來的鍵名,否則不保留,默認就是false

如果是關聯數組,默認就是返回原來的鍵名

Array_splice(): 刪除一系列元素,而且可以選擇是否用新的值來替換被刪除的元素

Array_combine():合並兩個數組來創建一個新的數組。其中一個數組是鍵名,另外一個是新數組的元素值

Array_merge():合並兩個數組,如果鍵名有重復的,後面的會覆蓋前面的

Array_merge()還有一個作用,就是對索引數組重新進行索引

Array_intersect():用於計算數組的交集

可以計算多個數組的交集

Array_diff():剛好和上面的函數相反,求函數的差集,返回一個數組,該數組包括了所有在 array1 中但是不在任何其它參數數組中的值。註意鍵名保留不變。

多個數組的情況

數據結構相關函數

Array_pusharray_pop:這兩個可以算作是一組函數

Array_push:往數組的末端添加新的一個或者多個元素

Array_pop():刪除數組最後一個元素,返回值為彈出的元素

Array_shiftarray_unshift:剛才上面一組函數是在數組的尾部進行操作,這組函數是在數組的首部進行操作

array_unshift:往數組的首端添加新的一個或者多個元素

Array_shift():刪除數組第一個元素,返回值為彈出的元素

其他數組相關函數

Array_rand():從一個數組裏面隨機取出一個或者多個元素並返回,返回的是元素的鍵名

Shuffle():將數組中元素的順序打亂,鍵名也會重新被排號。

Range(起始值,結束值,間隔):創建一個指定範圍的數組

Array_sum():計算數組中值的總和

PHP其他相關知識

PHP裏面,數組可以使用(+=====)來進行計算。

加法運算:兩個數組可以進行相加操作,相加操作實際上就是合並2個數組,如果鍵名重復,只保留前面的元素,後面的被舍棄掉。

鍵名相同,後面的元素被舍棄

Array_merge():如果輸入的數組中有相同的字符串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。

==和===

==:如果兩個數組具有相同的鍵值對,則返回TRUE

===:如果兩個數組具有相同的鍵值對,鍵值對的數據類型也相同,順序也相同,則返回true

刪除數組中元素

想要刪除數組裏面的元素,使用unset()

數組中的運用