php常用数组函数
簡介
手冊說明
注:數組操作符 +:+ 運算符把右邊的數組元素附加到左邊的數組后面,兩個數組中都有的鍵名,則只用左邊數組中的,右邊的被忽略。
常用函數
1. 可用于隊列操作
- array_push($arr, $value1, ...)將一個或多個單元壓入數組的末尾(入棧)
- array_pop($arr);彈出數組最后一個單元(出棧)
- array_unshift($arr, $value1, ...);在數組開頭插入一個或多個單元
- array_shift($arr);將數組開頭的單元移出數組
2. 數組自定義操作
- array_map()
- 語法:array array_map ( callable $callback , array $array1 [, array $... ] )
- 說明:返回數組,是為 array1 每個元素應用 callback函數之后的數組。 callback 函數形參的數量和傳給 array_map() 數組數量,兩者必須一樣。
- 詳細使用
- 例: <?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 ] )
- 說明:使用用戶自定義函數對數組中的每個元素做回調處理,不會受到 array 內部數組指針的影響。array_walk() 會遍歷整個數組而不管指針的位置。
- 具體使用
- 例:$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');
結果: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 ] )
- 說明:用回調函數迭代地將數組簡化為單一的值,
- 具體使用
- 參數:callback mixed callback ( mixed $carry , mixed $item ) carry 攜帶上次迭代里的值; 如果本次迭代是第一次,那么這個值是 initial。item 攜帶了本次迭代的值。initial 如果指定了可選參數 initial,該參數將在處理開始前使用,或者當處理結束,數組為空時的最后一個結果。
- 例: <?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. 多數組操作
- array_merge($array1, $array2, ...)合并一個或多個數組
- array_diff($array1, $array2, ...) 計算數組的差集; 對比 array1 和其他一個或者多個數字,返回在 array1 中但是不在其他 array 里的值。
- array_intersect($array1, $array2, ...)計算數組的交集;返回一個數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值。注意鍵名保留不變。
4. 其他
- array_keys 返回數組中部分的或所有的鍵名
- array_values 返回數組中所有的值
- array_unique 移除數組中重復的值
- array_multisort 對多個數組或多維數組進行排序
- array_reverse 返回單元順序相反的數組
- array_slice 從數組中取出一段
- 語法:array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
- array_search 在數組中搜索給定的值,如果成功則返回首個相應的鍵名
- 語法:mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
總結
- 上一篇: 来看看比尔盖茨当年写的BASIC解释器源
- 下一篇: PHP常用函数大全