php常用数组函数
簡介
手冊說明
注:數(shù)組操作符 +:+ 運(yùn)算符把右邊的數(shù)組元素附加到左邊的數(shù)組后面,兩個(gè)數(shù)組中都有的鍵名,則只用左邊數(shù)組中的,右邊的被忽略。
常用函數(shù)
1. 可用于隊(duì)列操作
- array_push($arr, $value1, ...)將一個(gè)或多個(gè)單元壓入數(shù)組的末尾(入棧)
- array_pop($arr);彈出數(shù)組最后一個(gè)單元(出棧)
- array_unshift($arr, $value1, ...);在數(shù)組開頭插入一個(gè)或多個(gè)單元
- array_shift($arr);將數(shù)組開頭的單元移出數(shù)組
2. 數(shù)組自定義操作
- array_map()
- 語法:array array_map ( callable $callback , array $array1 [, array $... ] )
- 說明:返回?cái)?shù)組,是為 array1 每個(gè)元素應(yīng)用 callback函數(shù)之后的數(shù)組。 callback 函數(shù)形參的數(shù)量和傳給 array_map() 數(shù)組數(shù)量,兩者必須一樣。
- 詳細(xì)使用
- 例: <?php function cube($n) {return($n * $n * $n); }$a = array(1, 2, 3, 4, 5); $b = array_map("cube", $a); print_r($b); 輸出:Array ([0] => 1[1] => 8[2] => 27[3] => 64[4] => 125 )
- array_walk()
- 語法:bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )
- 說明:使用用戶自定義函數(shù)對(duì)數(shù)組中的每個(gè)元素做回調(diào)處理,不會(huì)受到 array 內(nèi)部數(shù)組指針的影響。array_walk() 會(huì)遍歷整個(gè)數(shù)組而不管指針的位置。
- 具體使用
- 例:$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");function test_alter(&$item1, $key, $prefix) {$item1 = "$prefix: $item1";
}function test_print($item2, $key) {echo "$key. $item2<br />\n";
}echo "Before ...:\n";
array_walk($fruits, 'test_print');array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";array_walk($fruits, 'test_print');
結(jié)果:Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple
- 例:
- array_reduce()
- 語法:mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
- 說明:用回調(diào)函數(shù)迭代地將數(shù)組簡化為單一的值,
- 具體使用
- 參數(shù):callback mixed callback ( mixed $carry , mixed $item ) carry 攜帶上次迭代里的值; 如果本次迭代是第一次,那么這個(gè)值是 initial。item 攜帶了本次迭代的值。initial 如果指定了可選參數(shù) initial,該參數(shù)將在處理開始前使用,或者當(dāng)處理結(jié)束,數(shù)組為空時(shí)的最后一個(gè)結(jié)果。
- 例: <?php function sum($carry, $item) {$carry += $item;return $carry; }function product($carry, $item) {$carry *= $item;return $carry; }$a = array(1, 2, 3, 4, 5); $x = array();var_dump(array_reduce($a, "sum")); // int(15) var_dump(array_reduce($a, "product", 10)); // int(1200), because: 10*1*2*3*4*5 var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce"
3. 多數(shù)組操作
- array_merge($array1, $array2, ...)合并一個(gè)或多個(gè)數(shù)組
- array_diff($array1, $array2, ...) 計(jì)算數(shù)組的差集; 對(duì)比 array1 和其他一個(gè)或者多個(gè)數(shù)字,返回在 array1 中但是不在其他 array 里的值。
- array_intersect($array1, $array2, ...)計(jì)算數(shù)組的交集;返回一個(gè)數(shù)組,該數(shù)組包含了所有在 array1 中也同時(shí)出現(xiàn)在所有其它參數(shù)數(shù)組中的值。注意鍵名保留不變。
4. 其他
- array_keys 返回?cái)?shù)組中部分的或所有的鍵名
- array_values 返回?cái)?shù)組中所有的值
- array_unique 移除數(shù)組中重復(fù)的值
- array_multisort 對(duì)多個(gè)數(shù)組或多維數(shù)組進(jìn)行排序
- array_reverse 返回單元順序相反的數(shù)組
- array_slice 從數(shù)組中取出一段
- 語法:array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
- array_search 在數(shù)組中搜索給定的值,如果成功則返回首個(gè)相應(yīng)的鍵名
- 語法:mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
總結(jié)
- 上一篇: 来看看比尔盖茨当年写的BASIC解释器源
- 下一篇: 台式电脑连不上wifi怎么办