相關推薦:《PHP ARRAY 陣列函數(專題)》
##PHP Array 是什麼?
推薦影片教學:#1、《PHP函數之array陣列函數視訊講解》
2、《PHP基本文法(玉女心經版)》
3、《PHP字串處理(玉女心經版)》
推薦學習手冊:《php完全自學手冊》
#PHP Array 使用
PHP數組的定義[1, 5, 1.1, 'abc' true, false] //可以存储任何数据,此时为'默认下标', [2=>1, 5=>5, 3=>1.1, 7=>'abc' 0=>true]//下标可以任意设定(无需顺序,无需连续) [2=>1, 5, 1=>1.1, 'abc' 0=>true]//可以加下标,也可以不加(默认下标),下标分别是:2,3,1,4,0 //默认下标规则:前面已经用过的最大数字下标+1 [2=>1, 'dd'=>5, 1=>1.1, 'abc' 0=>true]//混合下标,同样遵循默认下标规则 [-2=>1, 'dd'=>5, 1.1, 'abc' true]; //负数下标不算在整数下标中,而只当作字符下标 //则最好3项的下标是:0, 1, 2 [2.7=>1, 'dd'=>5, 1=>1.1, 'abc' 0=>true]//浮点数下标为自动转换为整数,且直接抹掉小数 ['2.7' =>1, 'dd'=>5, '11'=>1.1, 'abc' true]//纯数字字符串下标,当作数字看待, //则此时下标为:2, 'dd', 11, 12, 13 [2=>1, 'dd'=>5, true=>1.1, 'abc' false=>true]//布尔值当下标,则true为1,false为0; [2=>1, 'dd'=>5, 2=>1.1, 'abc' true]//如果下标跟前面的重复,则单纯覆盖前面同名下标的值關聯數組
$array = [ 'name' => 'zhaosi', 'age' => 20, 'sex' => '女' ];多維數組
$array = [ [ 'name' => 'xiaoming', 'age' => 17, 'sex' => '男' ], [ 'name' => 'wanghua', 'age' => 16, 'sex' => '女' ], [ 'name' => 'zhaosi', 'age' => 20, 'sex' => '女' ], [ 'name' => 'zhangsan', 'age' => 22, 'sex' => '男' ], [ 'name' => 'wangli', 'age' => 12, 'sex' => '女' ], [ 'name' => 'zhuhua', 'age' => 14, 'sex' => '男' ] ];數組歷遍
$array = [ [ 'name' => 'xiaoming', 'age' => 17, 'sex' => '男' ], [ 'name' => 'wanghua', 'age' => 16, 'sex' => '女' ], [ 'name' => 'zhaosi', 'age' => 20, 'sex' => '女' ], [ 'name' => 'zhangsan', 'age' => 22, 'sex' => '男' ], [ 'name' => 'wangli', 'age' => 12, 'sex' => '女' ], [ 'name' => 'zhuhua', 'age' => 14, 'sex' => '男' ] ]; foreach ($array as $key => $value) { echo $value['name']; echo $value['age']; echo $value['sex']; }輸出結果
xiaoming 17 男 wanghua 16 女 zhaosi 20 女 zhangsan 22 男 wangli 12 女 zhuhua 14 男
常用PHP陣列函數
#1、count() 函數的作用是計算陣列中的元素數量或物件中屬性個數
int count(mixed var[,int mode])第一個參數是必須的,傳人個計算的陣列或物件。第二個參數是可選,規定函數的模式是否遞歸地計算多維數組中數組的元素個數,可能的值是0 或1,0為預設值,不檢測多維數組,為1則檢測多維數組範例:
$a = array( "a", "b", "c", "d" ); echo count($a); //输出个数4 $b = array( "a" => array( 1, 2, 3 ) , "b" => array( 4, 5, 6 ) ); echo count($b, 1); //输出 8 echo count($b); //输出 2y([b]=>2 [d]=>4)
2、array_count_values() 函數用於統計數組中所有值出現的次數,該函數只有一個參數
array array_count_values(array input)參數規定輸入數組,傳回一個數組,其元素的鍵名是原始數組的值,鍵值是該值在原始數組中出現的次數範例:
$array=array(1,"a",1,"b","a"); $newarray=array_count_values($array); print_r($newarray);//输出array([1]=>2 [a]=>2 [b]=>1)
##3 、array_unique()函數用於刪除數組中重複的值,並傳回沒有重複值的新數組
array array_unique(array array)
參數需要接受一個數組,當數組中幾個元素的值相等時,只保留第一個元素,其他元素被刪除,並且傳回的新數組中鍵名不變,array_unique()先將值作為字串排序,然後對每個值只保留第一個遇到的鍵名,接著忽略所有後面的鍵名
範例:
$a=array("a"=>1,"b"=>2,"c"=>1); print_r(array_unique($a));//输出 array([a]=>1 [b]=>2)
4、array_filter() 函數用回呼函數過濾數組中元素,傳回按使用者自訂函數過濾後的陣列
array array_filter(array input [,callback callback])
參數:第一參數是必選項,要求輸入一個被過濾的數組,第二參數可選,將使用者自訂的函數名稱以字串形式傳入,如果自訂過濾函數傳回true,則被操作的數組的目前值就會包含在傳回的結果數組中,並將結果組成一個新數組,如果原始數組是一個關聯數組,則鍵名保持不變。
範例:
function myFun($var) { if ($var % 2 == 0) { return true; } } $array = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4 ); print_r($array, "myFun"); //输出 array([b]=>2 [d]=>4)
5、array_walk()函數對陣列中的每個元素套用回呼函數處理,如果成功傳回true,否則回傳false
#bool array_walk( array &array,callback funcname [,mixed userdata])
第一個參數是必須,要求輸入一個被指定的回呼函數處理的數組,第二個參數傳人用戶定義的回調函數,用於操作傳人第一參數的數組
範例:
function myFunc1($value, $key) { echo "key=$key value=$value"; } $a = ["a" => "lin1", "b" => "lin2", "c" => "lin3"]; array_walk($a, "myFunc1"); function myFunc2($value, $key, $str) { echo "$key $value"; } array_walk($a, "myFunc2"); function myFunc3($value, $key) { $value = "lin.su"; } array_walk($a, "myFunc3"); print_r($a); //$a 是一个引用数组
6、array_map()函數可以處理多個數組,將回呼函數作用到給定數組的元素上,並傳回使用者自訂函數作用後數組。
array array_map(callback callback,array arr1[,arry ....])
範例:
function myFunc($v1, $v2) { if ($v1 == $v2) { return "same"; } return "different"; } $a = [1, 2, 3]; $b = [1, 4, 3]; print_r(array_map("myFunc", $a, $b)); //输出 array([0]=>same [1]=>difference [2]=>same) print_r(array_map(null, $a, $b));
輸出:
array( [0]=>array([0]=>1 [1]=>2 [2]=>3) [1]=>array([0]=>1 [1]=>2 [2]=>3) )
PHP 陣列函數
########函數 | 描述 |
---|---|
#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數組(Array函數)的處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!