## php常用數組array函數實例總結【賦值,拆分,合并,計算,添加,刪除,查詢,判斷,排序】
> 這篇文章主要介紹了php常用數組array函數,結合實例形式總結分析了php常用的數組操作函數,包括數組的賦值、拆分、合并、計算、添加、刪除、查詢、判斷、排序等,需要的朋友可以參考下
[TOC]
本文實例總結了php常用數組array函數。分享給大家供大家參考,具體如下:
### array_combine
> 功能:用一個數組的值作為新數組的鍵名,另一個數組的值作為新數組的值
案例:
~~~
<?php
$a = array("one","two","three");
$b = array("一","二","三");
$c = array_combine($a,$b);
print_r($c);
/**結果
*Array ( [one] => 一 [two] => 二 [three] => 三 )
*/
~~~
### array_chunk
> 功能:拆分數組成多個數組
~~~
<?php
$input_array = array("a"=>"apple","b"=>"blue","c","d","e");
echo "<pre>";
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2,True));
echo "</pre>";
/**結果
Array
(
[0] => Array
(
[0] => apple
[1] => blue
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
Array
(
[0] => Array
(
[a] => apple
[b] => blue
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[2] => e
)
)
*/
~~~
### array_count_values
> 功能:統計數組中值出現的次數
~~~
<?php
$input_array = array("a"=>"apple","b"=>"blue","c","d","e");
echo "<pre>";
print_r(array_count_values($input_array));
echo "</pre>";
/**結果
Array
(
[apple] => 1
[blue] => 1
[c] => 1
[d] => 1
[e] => 1
)
*/
~~~
### array_diff
> 功能:第一個數組中去掉第二個數組中有的數據,返回剩下的內容作為結果
~~~
<?php
$array1 = array("a"=>"apple","b"=>"blue","c","d","e");
$array2 = array("apple","c","d","f");
$result = array_diff($array1, $array2);
$result2 = array_diff($array2, $array1);
echo "<pre>";
print_r($result);//數組1中去掉數組2中剩下的
print_r($result2);//數組2中去掉數組1中剩下的
echo "</pre>";
/**結果
Array
(
[b] => blue
[2] => e
)
Array
(
[3] => f
)
*/
~~~
### array_map
> 功能:將回調函數執行到數組中
~~~
<?php
//定義回調函數
function cube($n){
return ($n*$n*$n);
}
$a = array(1,2,3,4,5);
$b = array_map("cube",$a);
echo "<pre>";
print_r($b);
echo "</pre>";
/**結果
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
*/
~~~
### array_merge
> 功能:合并一個或多個數組
說明:如果后面有鍵名相同的會覆蓋掉前面的內容,鍵名為數字的會添加到后面
~~~
<?php
$array1 = array("color"=>"red",2,4);
$array2 = array("a","b","color"=>"green","shape"=>"trapezoid",4);
$result1 = array_merge($array1,$array2);
$result2 = array_merge_recursive($array1,$array2);
echo "<pre>";
print_r($result1);
print_r($result2);
echo "</pre>";
/**結果
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
Array
(
[color] => Array
(
[0] => red
[1] => green
)
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
*/
~~~
### array_pop
> 功能:剔除數組最后一個元素,返回被剔除的元素內容
~~~
<?php
$stack = array("orange","banana","apple","1");
$last = array_pop($stack);
echo "<pre>";
print_r($stack);
print_r($last);
echo "</pre>";
/**結果
Array
(
[0] => orange
[1] => banana
[2] => apple
)
1
*/
~~~
### array_push
> 功能:將一個多個單元壓入數組末尾,返回之后的數組個數
~~~
<?php
$stack = array("orange","banana");
$count = array_push($stack,"apple","red","blue");
echo "<pre>";
print_r($stack);
print_r($count);
echo "</pre>";
/**結果
Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => red
[4] => blue
)
5
*/
~~~
### array_rand
> 功能:獲取隨機的鍵名
~~~
<?php
$input = array("orange","banana","apple","red","blue");
$rand = array_rand($input,2);;
print_r($rand);
$rand = array_rand($input,3);
print_r($rand);
/**結果
Array
(
[0] => 1
[1] => 4
)
Array
(
[0] => 0
[1] => 1
[2] => 3
)
*/
~~~
### array_search
> 功能:查詢數組中的內容,返回鍵值,如果有多個匹配,返回第一個匹配的內容
~~~
<?php
$array = array("blue"=>"b","red"=>"r","green","r");
$key = array_search('b', $array);
echo $key;
echo "<br>";
$key = array_search('r', $array);
echo $key;
echo "<br>";
/**結果
blue
red
*/
~~~
### array_shift
> 功能:移除開頭的元素,與array_pop相反
~~~
<?php
$fruit = array("milk","orange","banana","apple");
$top = array_shift($fruit);
print_r($top);
echo "<br>";
print_r($fruit);
/**結果
milk
Array ( [0] => orange [1] => banana [2] => apple )
*/
~~~
### array_unique
> 功能:去除數組重復的元素,保留第一個出現的,包括鍵名和值
~~~
<?php
$input = array("a"=>"green","red","b"=>"green","blue","c"=>"red");
$result = array_unique($input);
print_r($result);
echo "<br>";
print_r($input);
/**結果
Array ( [a] => green [0] => red [1] => blue )
Array ( [a] => green [0] => red [b] => green [1] => blue [c] => red )
*/
~~~
### array_slice
> 功能:從數組中取出部分元素
~~~
<?php
$input = array("a","b","c","d","e");
$output = array_slice($input,2);//第二個參數沒有時,表示取到最后一個元素
print_r($output);
echo "<br>";
$output = array_slice($input,-2,1);//第二個參數是正數時,表示個數;倒數第一個是-1,倒數第二個是-2
print_r($output);
echo "<br>";
$output = array_slice($input,0,3);
print_r($output);
echo "<br>";
$output = array_slice($input,2,-1);//第二個參數是負數時,表示位置,取到哪一位,不包括本身
print_r($output);
echo "<br>";
$output = array_slice($input,2,-1,true);//第三個參數為true時,保留原有的鍵值
print_r($output);
echo "<br>";
/**結果
Array ( [0] => c [1] => d [2] => e )
Array ( [0] => d )
Array ( [0] => a [1] => b [2] => c )
Array ( [0] => c [1] => d )
Array ( [2] => c [3] => d )
*/
~~~
### count
> 功能:返回數組元素個數,元素為數組的算一個
~~~
<?php
$input = array("a","b","c",array("d","e"));
$count = count($input);
echo $count;
echo "<br>";
$input = array("a","b","c","d","e");
$count = count($input);
echo $count;
/**結果
4
5
*/
~~~
### current
> 功能:獲取當前的指針指向元素
~~~
<?php
$array = array("foot","bike","car","plane");
$result = current($array);
echo $result."<br>";
next($array);//使指針指向下一個元素
$result = current($array);
echo $result."<br>";
prev($array);//使指針指向前一個元素
$result = current($array);
echo $result."<br>";
end($array);//使指針指向最后一個元素
$result = current($array);
echo $result."<br>";
/**結果
foot
bike
foot
plane
*/
~~~
### in_array
> 功能:檢驗某值是否存在數組中,有返回True,沒有返回False
~~~
<?php
$os_list = array("Mac","NT","Irix","Linux");
if(in_array("Irix",$os_list)){
echo "當前操作系統列表中存在Irix";
}else{
echo "當前操作系統列表中不存在Irix";
}
echo "<br>";
if(in_array("mac",$os_list)){
echo "當前操作系統列表中存在mac";
}else{
echo "當前操作系統列表中不存在mac";
}
echo "<br>";
/**結果
當前操作系統列表中存在Irix
當前操作系統列表中不存在mac
*/
~~~
### list
> 功能:將數組中的信息賦值給多個變量
~~~
<?php
$info = array("red","blue","green");
list($flag,$sky,$grassland) = $info;
echo "$flag,$sky,$grassland";
echo "<br>";
list($flag,,$grassland) = $info;
echo "$flag,$grassland";
echo "<br>";
list(,,$grassland) = $info;
echo "$grassland";
echo "<br>";
/**結果
red,blue,green
red,green
green
*/
~~~
### shuffle
> 功能:打亂數組
~~~
<?php
$numbers = range(1,5);//生成一個隨機數組
print_r($numbers);
echo "<br/>";
shuffle($numbers);//打亂數組
print_r($numbers);
/**結果
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Array ( [0] => 4 [1] => 1 [2] => 5 [3] => 2 [4] => 3 )
*/
~~~
### array_keys
> 功能:獲取數組的鍵名,第二個參數可以指定獲取某個元素
~~~
<?php
$array = array(0=>100,"color"=>"red");
print_r(array_keys($array));
echo "<br>";
$array = array("blue","red","green","blue","blue");
print_r(array_keys($array,"blue"));
echo "<br>";
$array = array("color"=>array("blue","red","green"),"size"=>array("small","medium","large"));
print_r(array_keys($array));
echo "<br>";
/**結果
Array ( [0] => 0 [1] => color )
Array ( [0] => 0 [1] => 3 [2] => 4 )
Array ( [0] => color [1] => size )
*/
~~~
### array_reverse
> 功能:獲取數組的反向
~~~
<?php
$input = array("php",3.0,array("green","red"));
$result = array_reverse($input); //打亂鍵名
$result_keyed = array_reverse($input,TRUE);//保留鍵名
print_r($result);
print_r($result_keyed);
/**結果
Array
(
[0] => Array
(
[0] => green
[1] => red
)
[1] => 3
[2] => php
)
Array
(
[2] => Array
(
[0] => green
[1] => red
)
[1] => 3
[0] => php
)
*/
~~~
### arsort
> 功能:逆向排序,索引不變
~~~
<?php
$fruits = array(
"a"=>"lemon",
"b"=>"orange",
"c"=>"banana",
"d"=>"apple",
);
arsort($fruits);//按照字符逆向排序或數字
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
/**結果
b = orange
a = lemon
c = banana
d = apple
*/
~~~
### asort
> 功能:進行正向排序
~~~
<?php
$fruits = array(
"a"=>"lemon",
"b"=>"orange",
"c"=>"banana",
"d"=>"apple",
);
arsort($fruits);//按照字符逆向排序或數字
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
echo "<p>";
asort($fruits);//按照字符正向排序或數字
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
/**結果
b = orange
a = lemon
c = banana
d = apple
d = apple
c = banana
a = lemon
b = orange
*/
~~~
### krsort
> 功能:按照鍵名進行逆向排序
~~~
<?php
$fruits = array(
"a"=>"lemon",
"b"=>"orange",
"c"=>"banana",
"d"=>"apple",
);
krsort($fruits);//按照鍵名逆向排序或數字
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
/**結果
d = apple
c = banana
b = orange
a = lemon
*/
~~~
### rsort
> 功能:按照值進行逆向排序,鍵名改變
~~~
<?php
$fruits = array(
"a"=>"lemon",
"b"=>"orange",
"c"=>"banana",
"d"=>"apple",
);
rsort($fruits);//按照值進行逆向排序或數字,鍵名改變
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
/**結果
0 = orange
1 = lemon
2 = banana
3 = apple
*/
~~~
### sort
> 功能:按照值進行正向排序,鍵名改變
~~~
<?php
$fruits = array(
"a"=>"lemon",
"b"=>"orange",
"c"=>"banana",
"d"=>"apple",
);
sort($fruits);//按照值進行逆向排序或數字,鍵名改變
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
/**結果
0 = apple
1 = banana
2 = lemon
3 = orange
*/
~~~
> 函數 描述
> array() 創建數組。
> array_change_key_case() 把數組中所有鍵更改為小寫或大寫。
> array_chunk() 把一個數組分割為新的數組塊。
> array_column() 返回輸入數組中某個單一列的值。
> array_combine() 通過合并兩個數組來創建一個新數組。
> array_count_values() 用于統計數組中所有值出現的次數。
> array_diff() 比較數組,返回差集(只比較鍵值)。
> array_diff_assoc() 比較數組,返回差集(比較鍵名和鍵值)。
> array_diff_key() 比較數組,返回差集(只比較鍵名)。
> array_diff_uassoc() 比較數組,返回差集(比較鍵名和鍵值,使用用戶自定義的鍵名比較函數)。
> array_diff_ukey() 比較數組,返回差集(只比較鍵名,使用用戶自定義的鍵名比較函數)。
> array_fill() 用給定的鍵值填充數組。
> array_fill_keys() 用指定鍵名的給定鍵值填充數組。
> array_filter() 用回調函數過濾數組中的元素。
> array_flip() 交換數組中的鍵和值。
> array_intersect() 比較數組,返回交集(只比較鍵值)。
> array_intersect_assoc() 比較數組,返回交集(比較鍵名和鍵值)。
> array_intersect_key() 比較數組,返回交集(只比較鍵名)。
> array_intersect_uassoc() 比較數組,返回交集(比較鍵名和鍵值,使用用戶自定義的鍵名比較函數)。
> array_intersect_ukey() 比較數組,返回交集(只比較鍵名,使用用戶自定義的鍵名比較函數)。
> array_key_exists() 檢查指定的鍵名是否存在于數組中。
> array_keys() 返回數組中所有的鍵名。
> array_map() 把數組中的每個值發送到用戶自定義函數,返回新的值。
> array_merge() 把一個或多個數組合并為一個數組。
> array_merge_recursive() 遞歸地合并一個或多個數組。
> array_multisort() 對多個數組或多維數組進行排序。
> array_pad() 用值將數組填補到指定長度。
> array_pop() 刪除數組的最后一個元素(出棧)。
> array_product() 計算數組中所有值的乘積。
> array_push() 將一個或多個元素插入數組的末尾(入棧)。
> array_rand() 返回數組中一個或多個隨機的鍵。
> array_reduce() 通過使用用戶自定義函數,以字符串返回數組。
> array_replace() 使用后面數組的值替換第一個數組的值。
> array_replace_recursive() 遞歸地使用后面數組的值替換第一個數組的值。
> array_reverse() 以相反的順序返回數組。
> array_search() 搜索數組中給定的值并返回鍵名。
> array_shift() 刪除數組中首個元素,并返回被刪除元素的值。
> array_slice() 返回數組中被選定的部分。
> array_splice() 刪除并替換數組中指定的元素。
> array_sum() 返回數組中值的和。
> array_udiff() 比較數組,返回差集(只比較值,使用一個用戶自定義的鍵名比較函數)。
> array_udiff_assoc() 比較數組,返回差集(比較鍵和值,使用內建函數比較鍵名,使用用戶自定義函數比較鍵值)。
> array_udiff_uassoc() 比較數組,返回差集(比較鍵和值,使用兩個用戶自定義的鍵名比較函數)。
> array_uintersect() 比較數組,返回交集(只比較值,使用一個用戶自定義的鍵名比較函數)。
> array_uintersect_assoc() 比較數組,返回交集(比較鍵和值,使用內建函數比較鍵名,使用用戶自定義函數比較鍵值)。
> array_uintersect_uassoc() 比較數組,返回交集(比較鍵和值,使用兩個用戶自定義的鍵名比較函數)。
> array_unique() 刪除數組中的重復值。
> array_unshift() 在數組開頭插入一個或多個元素。
> array_values() 返回數組中所有的值。
> array_walk() 對數組中的每個成員應用用戶函數。
> array_walk_recursive() 對數組中的每個成員遞歸地應用用戶函數。
> arsort() 對關聯數組按照鍵值進行降序排序。
> asort() 對關聯數組按照鍵值進行升序排序。
> compact() 創建包含變量名和它們的值的數組。
> count() 返回數組中元素的數目。
> current() 返回數組中的當前元素。
> each() 返回數組中當前的鍵/值對。
> end() 將數組的內部指針指向最后一個元素。
> extract() 從數組中將變量導入到當前的符號表。
> in_array() 檢查數組中是否存在指定的值。
> key() 從關聯數組中取得鍵名。
> krsort() 對數組按照鍵名逆向排序。
> ksort() 對數組按照鍵名排序。
> list() 把數組中的值賦給一些變量。
> natcasesort() 用“自然排序”算法對數組進行不區分大小寫字母的排序。
> natsort() 用“自然排序”算法對數組排序。
> next() 將數組中的內部指針向前移動一位。
> pos() current() 的別名。
> prev() 將數組的內部指針倒回一位。
> range() 創建包含指定范圍單元的數組。
> reset() 將數組的內部指針指向第一個元素。
> rsort() 對數組逆向排序。
> shuffle() 將數組打亂。
> sizeof() count() 的別名。
> sort() 對數組排序。
> uasort() 使用用戶自定義的比較函數對數組中的鍵值進行排序。
> uksort() 使用用戶自定義的比較函數對數組中的鍵名進行排序。
> usort() 使用用戶自定義的比較函數對數組進行排序。
- 常用函數
- 簡單的php生成靜態html代碼
- PHP寫文件函數
- PHP生成GUID的函數
- PHP常用正則表達式匯總
- php字符串壓縮
- PHP無限分組
- PHP簡單 對象(object) 與 數組(array) 的轉換
- PHP數組常用函數
- PHP調式測試函數
- PHP常用字符串的操作函數
- mysql 常用內置函數
- PHP通用請求函數CURL封裝
- 裁剪圖片PHP代碼
- PDO操作MYSQL封裝類
- 10個實用的PHP代碼片段
- 獲取訪問者IP地址
- PHP實現發紅包程序
- PHP把文本轉換成圖片
- curl重寫php file_get_contents
- PHP生成一個隨機字符串
- PHP讀文件和寫文件
- PHP根據key 給二維數組分組
- php中curl模擬post提交多維數組
- 33個超級有用必須要收藏的PHP代碼樣例
- PHP防XSS 防SQL注入的代碼
- php常用數組array函數實例總結
- 用PHP遍歷目錄下的全部文件
- GBK2UTF8