數(shù)組值的操作
1.值的析取
PHP中,用list來(lái)析取數(shù)組中的值,如list($a, $b) = $array,如果list中的值多于數(shù)組個(gè)數(shù),list中多余的值會(huì)設(shè)為NULL,也可以用逗號(hào)來(lái)跳過(guò)數(shù)組中的值,如list($a, ,$b) = $array。
2.劃分?jǐn)?shù)組
如果想取得子數(shù)組,可以用array_slice(array, offset, length);來(lái)取得。它返回一個(gè)新的下標(biāo)從0開(kāi)始的數(shù)組。如果原數(shù)組的下標(biāo)是字符串,好像是沒(méi)有什么意義的,最好不要用,可以用array_splice來(lái)取得子串。
3.將數(shù)組分為多個(gè)數(shù)組
用array_chunk可以把數(shù)組分成一個(gè)二維數(shù)組。詳細(xì)的可以通過(guò)鏈接看官方的說(shuō)明。
4.鍵和值
array_keys($array),取得由數(shù)組索引組成的數(shù)組
array_value($array),取得由數(shù)組值組成的數(shù)組,索引從0開(kāi)始重新分配。
array_key_exists($key, array),元素是否存在檢查。
array_splice, 刪除插入元素。
5.數(shù)組和變量之間的轉(zhuǎn)換
extract(array) 把數(shù)組變成變量
compact() 把變量變成數(shù)組
6.數(shù)組的查找
in_array(array, ) 返回元素是否在數(shù)組中存在。
array_search() 返回被找到元素的索引。
7.整個(gè)數(shù)組函數(shù)
array_ sum() 計(jì)算數(shù)組的和。
array_ merge() 合并兩個(gè)數(shù)組。
array_ diff() 兩個(gè)數(shù)組之間的不同值。
array_ filter() 過(guò)濾元素
8.集合、堆棧、隊(duì)列
array_ unique() 取兩個(gè)數(shù)組的合集,如果值相同,保留前一個(gè)數(shù)組的索引。
array_ intersect() 取兩個(gè)數(shù)級(jí)的交集,保留第一個(gè)數(shù)組的索引。
array_ push() 加入堆棧。
array_ pop() 彈出堆棧。
array_ shift() 加入隊(duì)列。
array_ unshift() 彈出隊(duì)列。
1.簡(jiǎn)單的遍歷
PHP中,數(shù)組最簡(jiǎn)單的遍歷方法莫過(guò)于for和foreach了,其中foreach有兩種寫(xiě)法,一種只遍歷值、另一種遍歷索引和值,具體可以看如下代碼.
2.迭代器遍歷
PHP中,迭代遍歷主要要用到以下函數(shù)。
current() 迭代的當(dāng)前元素。
reset() 重新移動(dòng)到第一個(gè)元素并返回它。
next() 移動(dòng)到下一個(gè)元素并返回它。
prev() 移動(dòng)到上一個(gè)元素并返回它。
end() 移動(dòng)到最后一個(gè)元素并返回它。
each() 以數(shù)組的形式返回當(dāng)前元素的索引和值,并移動(dòng)到下一個(gè)迭代。
key() 返回當(dāng)前的索引。
array_ walk() 為每一個(gè)元素調(diào)用函數(shù)。
array_ reduce() 為每一個(gè)元素依次計(jì)算。
實(shí)例代碼如下:
3.數(shù)組的排序
在PHP中,排序方式有三種,通過(guò)索引排序、通過(guò)值排序(不保留原索引)、通過(guò)值排序(保留原索引)。每種又分為升序、降序以及用戶定義順序三個(gè)函數(shù)。它們分別如下:
通過(guò)索引排序:①升序 ksort() ②降序 krsort() ③用戶定義順序 uksort()
不保留原索引值排序:①升序 sort() ②降序 rsort() ③用戶定義順序 usort()
保留原索引值排序:①升序 asort() ②降序 arsort() ③用戶定義順序 uasort()
在PHP中,也可以用array_multisort來(lái)一次排序多個(gè)數(shù)組,不過(guò)項(xiàng)目中可能用得比較少。
翻轉(zhuǎn)數(shù)組,把數(shù)字索引翻轉(zhuǎn),索引重新從0開(kāi)始:array_reverse()
把索引和值調(diào)換:array_flip()
隨機(jī)順序:shuffle()