PHP 入门 - 5.数组
生活随笔
收集整理的這篇文章主要介紹了
PHP 入门 - 5.数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 索引數組和關聯數組
- 在數組末尾添加值
- 遍歷數組
- foreach
- 迭代器
- for
- 排序
- 數組函數
索引數組和關聯數組
-
索引(indexed):鍵名是整數并且從 0 開始。
-
關聯(associative):鍵名是字符串。
注:PHP 內部將所有的數組都存儲為關聯數組。
在數組末尾添加值
向一個已存在的索引數組末尾添加更多的值,可以使用 [] 語法。
$family = array("Fred","Wilma"); $family[] = "Pebbles"; // $family[2] 是 "Pebbles"如果該數組為關聯數組,則添加的索引為 0 。
$family = array('name' => "Wilma"); $family[] = "Pebbles"; // $family[0] 是 "Pebbles"遍歷數組
// 樣例數組 $arr = array('name' => "Fred",'age' => 35,'wife' => "Wilma"); $arr1 = array("Fred", 35, "Wilma");foreach
foreach ($arr as $val) {echo "{$val}\n"; } /* output Fred 35 Wilma */ foreach ($arr as $key => $value) {echo "Fred's {$key} is {$value}\n"; } /* output Fred's name is Fred Fred's age is 35 Fred's wife is Wilma */迭代器
每個 PHP 數組都會跟蹤當前所處理的元素,指向當前元素的指針被稱為迭代器。迭代器的函數如下:
- current(&array):mixed : 返回迭代器當前指向的元素
- reset(&array):mixed : 移動迭代器到數組中第一個元素
- next(&array):mixed : 移動迭代器到數組下一個元素
- prev(&array):mixed : 移動迭代器到數組上一個元素
- end(&array):mixed : 移動迭代器到數組中最后一個元素
- each(&array):array : 以數組的形式返回當前元素的鍵和值,并移動迭代器到下一個元素。
- key(&array):mixed : 返回當前元素的鍵
for
$arr1count = count($arr1);for ($i = 0; $i < $arr1count; $i++) {$value = $arr1[$i];echo "{$value}\n"; } /* output Fred 35 Wilma */排序
| 按值排序數組,然后從 0 開始重新分配索引 | sort() | rsort() | usort(&array, callback) |
| 按值排序 | asort() | arsort() | uasort(&array, callback) |
| 按鍵排序 | ksort() | krsort() | uksort(&array, callback) |
- natsort(&array):bool : 按照自然順序,升序排序。
- natcasesort(&array):bool : 不區分大小寫,按照自然順序,升序排序。
- array_multisort() : 對多個索引數組進行排序。
數組函數
- array(…):array : 創建一個數組。
- count(array) 和 sizeof(array) 獲取數組中元素的個數。
- list(varl[, …]):array : 不是真正的函數,而是一個語言結構。它會把數組中的值賦給一組變量。
- array_slice(array, offset, length=NULL):array : 根據 offset 和 length 參數返回 array 數組中的一段序列。
- array_chunk(array, size[, preserve_keys = false]):array : 將一個數組分割成多個數組,其中每個數組的單元數目由 size 決定。第三個參數 preserve_keys 設置為 true 可以保留數組中原來的鍵名,默認從零開始新數字索引。
- array_keys(array[, search_value=null[, strict=false]]):array : 返回 array 數組中的鍵名。如果指定 search_value ,則只返回該值的鍵名,否則將返回全部鍵名。strict 則是指定搜索時是否使用嚴格模式( === )。
- array_values(array):array : 返回 array 數組中值的數組。
- array_key_exists(key,array):bool : 檢查數組里是否有指定的 key 。如果該鍵的值為 NULL ,該函數將返回 true 。
- isset(var[, ...]):bool : 檢查變量是否存在,并且不為 NULL 。
- array_splice(array1, offset[, length=count(array1)[, replacement=array()]]):array : 把 array1 數組中由 offset 和 length 指定的元素去掉,如果提供了 replacement 參數,則用其中的元素取代。
- extract(&array[, flags=EXIR_OVERWRITE[, prefix=NULL]]):int : 將變量從數組中導入到當前的符號表中。
- compact(varname1[, ...]):array : 創建一個包含變量名與其值的數組。該函數會創建一個關聯數組。
- array_walk(&array, callback, $userdata=NULL):bool : 為數組中的每個元素調用用戶自定義的函數。自定義函數接受三個參數:第一個是元素的值,第二個是元素的鍵,第三個是 array_walk() 的第三個參數。
- array_reduce() : 與 array_walk() 參數相同,不同的是,他將依次迭代數組每個元素得到單個值。
- in_array(needle, haystack[, strict=false]):bool : 在 haystack 中搜索 needle 是否存在,strict 將設置是否嚴格匹配。
- array_fliter(array, callback[, flag=0]):array : 使用 callback 函數來過濾 array 。
- array_push(&array, value1[, ...]):int 和 array_pop(&array):mixed 模擬堆棧。
- array_shift(&array, value1[, ...]):int 和 array_unshift(&array):mixed 模擬隊列。
- array_flip(array):array : 數組的鍵值互換。
感謝你看到了這里。如果文章有錯誤,請評論指正,謝謝!
總結
以上是生活随笔為你收集整理的PHP 入门 - 5.数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP 入门 - 4.正则表达式
- 下一篇: PHP 入门 - 6.面对对象