摘要:概述我們知道,在編程語言中,數(shù)組的使用頻率是很高的,幾乎每個腳本都會使用到。循環(huán)缺點遍歷完成之后,不能對數(shù)組進行第二次遍歷數(shù)組內(nèi)部指針指向了最后一個元素。
概述
我們知道,在 PHP 編程語言中,數(shù)組的使用頻率是很高的,幾乎每個腳本都會使用到。 PHP 自帶了大量的、優(yōu)秀的操作數(shù)組的函數(shù)以供我們使用,本文就對這些數(shù)組函數(shù)的使用做一些分類和總結(jié),方便大家以后查閱。
創(chuàng)建建立一個指定范圍的數(shù)組:
$arr1 = range(0, 10); # array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) $arr2 = range(0, 10, 2); # array(0, 2, 4, 6, 8, 10) $arr3 = range("a", "d"); # array("a", "b", "c", "d") $arr4 = range("d", "a"); # array("d", "c", "b", "a")
創(chuàng)建一個包含變量名和它們值的數(shù)組:
$number = 10; $string = "I"m PHPer"; $array = array("And", "You?"); $result = compact("number", "string", "array"); # array("number"=>10, "string"=>"I"m PHPer", "array"=>array("And", "You?"))
創(chuàng)建一個用一個數(shù)組的值作為其鍵、另一個數(shù)組的值作為其值的數(shù)組:
$key = array("1", "3", "5", "7", "9"); $value = array("I", "Am", "A", "PHP", "er"); $result = array_combine($number,$array); # array("1"=>I, "3"=>"Am", "5"=>"A", "7"=>"PHP", "9"=>"er")遍歷
$arr = range(0, 10); for($i = 0; $i < count($arr); $i++) { echo $arr[$i]; }
缺點:只能遍歷索引數(shù)組。
$products = array("apple"=>3, "milk"=>6, "eggs"=>10); while(list($product, $quantity) = each($products)) { echo $product . "-" . $quantiry; }
缺點:遍歷完成之后,不能對數(shù)組進行第二次遍歷(數(shù)組內(nèi)部指針指向了最后一個元素)。
$products = array("apple"=>3, "milk"=>6, "eggs"=>10); foreach($products as $product => $quantity) { echo $product . "-" . $quantiry; }操作 key 或 value
unset() — 刪除數(shù)組成員或數(shù)組
in_array() — 檢查數(shù)組中是否存在某個值
array_key_exists() — 檢查給定的鍵名或索引是否存在于數(shù)組中
array_search() — 在數(shù)組中搜索給定的值,如果成功則返回相應的鍵名
$array = array(1, 2, 3); unset($array); # array() $fruit = array("apple" => "goold","orange" => "fine","banana" => "OK"); if(in_array("good", $fruit)) { echo "Exit"; } $search_array = array("first" => 1, "second" => 4); if (array_key_exists("first", $search_array)) { echo "Exit"; } $array = array(0 => "blue", 1 => "red", 2 => "green", 3 => "red"); $key = array_search("green", $array); # $key = 2;
array_keys() — 返回數(shù)組中部分的或所有的鍵名
array_values() — 返回數(shù)組中所有的值
$array = array("apple"=>"good", "orange"=>"fine", "banana"=>"ok"); $keys = array_keys($array); # array("apple", "orange", "banana") $values = array_values($array); # array("good", "fine", "ok")
array_unique() — 移除數(shù)組中重復的值
$input = array(4, "4", "3", 4, 3, "3"); $result = array_unique($input); # array(4, "3")
array_flip() — 交換數(shù)組中的鍵和值
$input = array("oranges", "apples", "pears"); $result = array_flip($input); # array("oranges"=>0, "apples"=>1, "pears"=>2)
array_count_values() 統(tǒng)計數(shù)組中所有的值
$input = array(1, "hello", 1, "world", "hello"); $result = array_count_values($input); # array("1"=>2, "hello"=>2, "world"=>1)排序
對數(shù)組進行升序或降序排序:
$fruits = array(); sort($fruits); # array("apple", "banana", "lemon", "orange") rsort($fruits); # array("orange", "lemon", "banana", "apple")
對關(guān)聯(lián)數(shù)組(按元素的值)進行升序或降序排序并保持索引關(guān)系:
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); asort($fruits); # array("c"=>""apple", "b"=>""banana", "d"=>"lemon", "a"=>"orange") arsort($fruits); # array("a"=>"orange", "d"=>"lemon", "b"=>""banana", "c"=>""apple")
對數(shù)組按照鍵名排序:
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); ksort($fruits); # array("a"=>"orange", "b"=>"banana", "c"=>"apple", "d"=>"lemon")
隨機打亂數(shù)組排序:
$numbers = range(1, 5); shuffle($numbers); # array(3, 2, 5, 1, 4)棧與列隊
array_push() — 將一個或多個單元壓入數(shù)組的末尾(入棧)
array_pop() — 將數(shù)組最后一個單元彈出(出棧)
$stack = array("orange", "banana"); array_push($stack, "apple", "raspberry"); # array("orange", "banana", "apple", "raspberry") $fruit = array_pop($stack); #array("orange", "banana", "apple")
array_unshift() — 在數(shù)組開頭插入一個或多個單元
array_shift() — 將數(shù)組開頭的單元移出數(shù)組
$queue = array("orange", "banana"); array_unshift($queue, "apple", "raspberry"); # array("apple", "raspberry", "orange", "banana") $fruit = array_shift($queue); # array("raspberry", "orange", "banana")分割、填充、合并
array_slic() — 從數(shù)組中取出一段
array_splice() — 把數(shù)組中的一部分去掉并用其它值取代
$input = array("a", "b", "c", "d", "e"); $result = array_slice($input, 2); # array("c", "d", "e") $input = array("red", "green", "blue", "yellow"); array_splice($input, 2, 1); # array("red", "green", "yellow")
array_pad() — 以指定長度將一個值填充進數(shù)組
$input = array(12, 10, 9); $result = array_pad($input, 5, 0); # array(12, 10, 9, 0, 0) $result = array_pad($input, -7, -1); # array(-1, -1, -1, -1, 12, 10, 9)
array_fill() — 用給定的值填充數(shù)組
$a = array_fill(5, 3, "a"); # array(5=>"a", 6=>"a", 7=>"a") $b = array_fill(-2, 3, "pear"); # array(-2=>"a", 0=>"a", 1=>"a")
array_fill_keys() — 使用指定的鍵和值填充數(shù)組
$keys = array("foo", 5, 10, "bar"); $result = array_fill_keys($keys, "a"); # array("foo"=>"a", 5=>"a", 10=>"a", "bar"=>"a")
array_merge() — 合并一個或多個數(shù)組
$array1 = array("data0"); $array2 = array("data1"); $result = array_merge($array1, $array2); # array("data0", "data1")其他函數(shù)
使用用戶自定義函數(shù)對數(shù)組中的每個元素做回調(diào)處理(改變原來數(shù)組):
$a = array(1, 2, 3, 4, 5); array_walk($a, function(&$value, $key) { ++$value; }); # array(2, 3, 4, 5, 6)
將回調(diào)函數(shù)作用到給定數(shù)組的單元上(不改變原來數(shù)組,同時生成新的數(shù)組作為結(jié)果):
$a = array(1, 2, 3, 4, 5); $b = array_map(function($item) { return $item + 1; }, $a); # array(2, 3, 4, 5, 6)
從數(shù)組中隨機取出一個或多個元素:
$input = array("apple", "banana", "lemon", "orange"); $result = array_rand($input, 2); # array("banana", "lemon")
計算數(shù)組 value 的差集:
$array1 = array("a" => "green", "red", "blue", "red"); $array2 = array("b" => "green", "yellow", "red"); $result = array_diff($array1, $array2); # array("blue")
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28516.html
摘要:小駝峰法大駝峰法匈牙利命名法變量名屬性類型對象描述。是一種弱類型語言,變量在使用之前并不需要聲明類型,且同一變量可以保存多種不同類型的數(shù)據(jù)。另外,在函數(shù)內(nèi)部創(chuàng)建的靜態(tài)變量是無法在函數(shù)外部使用的。 變量標識符 標識符即是變量的名稱,PHP 中關(guān)于變量的標識符有以下規(guī)則: 由任意字母、數(shù)字、下劃線組成,但不能以數(shù)字開頭 嚴格區(qū)分大小寫 為了科學規(guī)范標識符,主要有以下幾種流行的命名方式:...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...
閱讀 3237·2021-11-23 09:51
閱讀 1042·2021-08-05 09:58
閱讀 676·2019-08-29 16:05
閱讀 985·2019-08-28 18:17
閱讀 3039·2019-08-26 14:06
閱讀 2734·2019-08-26 12:20
閱讀 2171·2019-08-26 12:18
閱讀 3074·2019-08-26 11:56