跟大家講解下有關php數組(Array函數)的處理,相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說php數組(Array函數)的處理,小編也收集到了有關php數組(Array函數)的處理的相關資料,希望大家看到了會喜歡。
PHP Array 是什么?數組就是一組數據的集合,把一系列數據組織起來,形成一個可操作的整體。PHP 中的數組較為復雜,但比其他許多高級語言中的數組更為靈活。
數組 array 是一組有序的變量,其中每個值被稱為一個元素。每個元素由一個特殊的標識符來區分,這個標識符稱為鍵(也稱為下標)。
數組中的每個實體都包含兩項,分別是鍵(key)和值(value)。可以通過鍵值來獲取相應的數組元素,這些鍵可以是數值鍵,也可以是關聯鍵。如果說變量是存儲單個值的容器,那么數組就是存儲多個值的容器。
PHP 數組比其他高級語言中的數組更加靈活,不但支持以數字為鍵名的索引數組,而且支持以字符串或字符串、數字混合為鍵名的關聯數組。而在其他高級語言中,如 Java 或者 C++ 等語言的數組,只支持數字索引數組。
PHP 數組的結構如下圖所示:
在 PHP 中,有三種數組類型:
索引數組:帶有數字索引的數組
關聯數組:帶有指定鍵的數組
多維數組:包含一個或多個數組的數組
推薦視頻教程:
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'];}輸出結果
xiaoming17男wanghua16女zhaosi20女zhangsan22男wangli12女zhuhua14男常用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); //輸出 8echo 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中文網其它相關文章!
來源:php中文網