1. Beberapa fungsi operasi asas pada nama kunci dan nilai tatasusunan
1 Dapatkan semua kunci atau nilai tatasusunan:array_keys()
array_values()
$arr_keys = array_keys($array);$arr_values = array_values($arr);
2. Pertukaran Kedudukan kunci dan nilai dalam tatasusunan Jika yang sebelumnya diulang, ia akan ditimpa oleh yang terkemudian: array_flip()
$arr2 = array_flip($arr);
3 nilai berada dalam tatasusunan: in_array(value,array)
$bool = in_array('hello',$arr);
4 Cari nilai tertentu dalam tatasusunan, kembalikan kuncinya jika ada, jika tidak, kembalikan FALSE: array_search()
$bool = array_search('hello',$arr);
5. Sama ada kunci yang diberikan wujud dalam tatasusunan: isset(array[key])
dan array_key_exists(key,array)
$bool = array_key_exists('a',$arr);
6. Dapatkan bilangan elemen tatasusunan: count(array,mode)
, apabila mod ialah 1, ini bermakna mengira tatasusunan secara rekursif, dan lalainya ialah 0. Alias sizeof()
$n = count($arr); //等价于:$n = sizeof($arr);
7. Tukar nama kunci dalam tatasusunan kepada semua huruf kecil atau huruf besar: array_change_key_case(array,case)
. Terdapat dua kuantiti yang biasa digunakan dalam kes: CASE_UPPER
atau CASE_LOWER
(nilai lalai), iaitu, lalai adalah semua huruf kecil
$lowarr = array_change_key_case($arr,CASE_LOWER);
8. Kira bilangan kejadian semua nilai dalam tatasusunan: array_count_value(array)
. Kembalikan tatasusunan, kuncinya ialah nilai tatasusunan asal, nilainya ialah bilangan kali elemen ini muncul dalam tatasusunan asal
$arr_count = array_count_values($arr);
9. Dapatkan nama kunci pertama atau terakhir tatasusunan: array_key_first(array)
, array_key_last(array)
$key = array_key_first($arr)
10 Pop elemen terakhir tatasusunan:
$last = array_pop($array);
Tolak satu atau lebih sel ke hujung tatasusunan atau permulaan tatasusunan. tatasusunan, dan kembalikan bilangan tatasusunan baharu :
$new_array = array_push($array,$value1,$value2,...);$new_array = array_unshift($array,$value1,$value2,...);
11 Balikkan susunan tatasusunan: array_reverse(array)
$reverse = array_reverse($arr)
12 dalam tatasusunan:
$sum = array_sum($array);$product = array_product($array);
13 Alih keluar nilai pendua daripada tatasusunan:
array_unique($array,,SORT_STRING);sort_falgs参数用于修改排序行为:SORT_NUMERIC - 按照数字形式比较、SORT_STRING - 按照字符串形式比较
14. Kocok tatasusunan: shuffle(array)
$bool = shuffle($arr);
15. Dapatkan satu atau lebih nama kunci secara rawak daripada tatasusunan :array_rand(array,num=1)
, mengembalikan tatasusunan yang mengandungi nama kunci rawak.
2. Ringkasan beberapa fungsi operasi pada penciptaan dan pemisahan tatasusunan
1. Pisahkan tatasusunan kepada berbilang tatasusunan: array_chunk(array,size,preserve_keys)
Parameter:
: Tentukan bilangan elemen dalam setiap tatasusunan size
: Tentukan sama ada untuk mengekalkan nama kunci asal, lalainya ialah preserve_keys
. false
Fungsi mengembalikan tatasusunan dua dimensi
$myarr = array_chunk($arr,2)
<.>array_combine(keys,values)
$arr_1 = ['A','B','C'];$arr_2 = ['a','b','c'];$arr_3 = array_combine($arr_1,$arr_2);
array_fill_keys(keys,value)
$keys = array('foo', 5, 10, 'bar');$a = array_fill_keys($keys, 'banana');
: Indeks pertama tatasusunan array_fill(start_index,num,value)
: Bilangan elemen yang dimasukkan, iaitu panjang tatasusunan, mestilah nombor bukan negatif start_index
: The nilai yang digunakan untuk mengisi num
5 Cantumkan satu atau lebih tatasusunan: value
$arr = array_fill(0,10,'myname');
array_merge(array1,array2...)
6 Gabungkan satu atau lebih tatasusunan secara rekursif:
$a = array_merge($arr_1,$arr_2);
7 Isikan nilai ke dalam tatasusunan dengan panjang yang ditentukan: array_merge_recursive(array_1,array_2,...)
Parameter:
: Panjang bagi. tatasusunan selepas mengisi. Jika ia positif, ia akan diisi ke sebelah kanan tatasusunan Jika ia negatif, ia akan diisi ke sisi kiri Ia boleh menjadi positif atau negatif array_pad(array,size,value)
: Panjang yang diperolehi, nombor positif menunjukkan bilangan elemen yang diperoleh, nombor negatif menunjukkan jarak dari hujung tatasusunan size
: Sama ada mahu mengekalkan nama kunci asal value
10. Alih keluar bahagian tertentu tatasusunan dan gantikannya dengan nilai lain:
Parameter: array_slice(array,offset,length,preserve_keys)
: Unit yang dialih keluar digantikan dengan unit dalam tatasusunan ini offset
11. Gunakan pembolehubah untuk buat Tatasusunan:
, nama pembolehubah ialah nama kunci, dan nilai pembolehubah ialah nilai elemen length
12. Eksport pembolehubah daripada tatasusunan: preserve_keys
, nama kunci ialah nama pembolehubah , dan nilai ialah nilai pembolehubah
13 Berikan nilai tatasusunan kepada pembolehubah: array_splice(array,offset,length,replacement_array)
replacement_array
14. mengandungi elemen yang ditentukan:
range(0,8,2) ==> [0,2,4,6,8]
三、数组排序基本函数名为 sort
可以添加其他拓展:r表示逆向排序,k表示对键名进行排序,a表示保持索引关系,u表示用自定义的函数进行比较 1.详细介绍sort函数的情况,其他的函数类似
/*bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )SORT_REGULAR参数可以用以下值改变排序的行为:SORT_REGULAR - 正常比较单元(不改变类型)SORT_NUMERIC - 单元被作为数字来比较SORT_STRING - 单元被作为字符串来比较SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。SORT_NATURAL - 和 natsort() 类似对每个单元以“自然的顺序”对字符串进行排序。 PHP 5.4.0 中新增的。SORT_FLAG_CASE - 能够与 SORT_STRING 或 SORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串。 */
排序函数分类大致如下:
2.sort()、rsort():对值进行升序和降序的排序3.ksort()、krsort():对键名进行升序和降序的排序4.asort()、arsort():保持索引关系的同时,对值进行升序和降序的排序5.usort()、uksort()、uasort():使用自定义的排序函数,进行按值的升序排序、按键名的升序排序、保持索引关系的升序排序6.natsort():使用自然排序算法对数组进行排序7.natcasesort():使用自然排序算法对数组进行不区分大小写字母的排序
四、数组运算
数组差集的计算 u表示用自定义的回调函数,diff表示用数据做差集,assoc表示用索引做差集
1.计算数组的差集:array_diff(array1,array2,...)
对比array1和其他数组,返回在array1中但不在其他数组中的值。返回一个数组,但是键名不保留
2.用回调函数比较数据来计算数组的差集:array_udiff(arr1,arr2,...,value_cpmpare_func)
使用用户自定义的函数进行数据比较,而不是内置的函数。
3.使用键名比较计算数组的差集:array_diff_key(array1,array2,...)
使用键名而不是值来进行差集计算
4.用回调函数对键名比较计算数组的差集:array_diff_ukey(arr1,arr2,...,key_compare_func)
5.带索引检查计算数组的差集:array_diff_assoc(array1,array2,..)
同时使用键名和值来进行差集计算
6.带索引检查计算数组的差集,用回调函数比较索引:array_diff_uassoc(arr1,arr2,...,key_compare_func)
key_compare_func
:用户自定义的用于比较键名的函数。
7.带索引检查计算数组的差集,用回调函数比较数据:array_udiff_assoc(arr1,arr2,...,value_cpmpare_func)
value_cpmpare_func
:用户自定义的用于比较数据的函数
8.用回调函数比较数据和索引,计算数组的差集:array_udiff_uassoc(arr1,arr2,...,value_cpmpare_func,key_compare_func)
数组交集的计算 同差集一样,也有8个函数:
array_intersect() 使用数据进行交集比较array_uintersect() 使用数据进行交集比较,但是自定义函数比较array_intersect_key() 使用键名进行交集比较array_intersect_ukey() 使用键名进行交比较,但是自定义函数比较array_intersect_assoc() 同时使用数据和键名array_intersect_uassoc() 同时使用数据和键名,但是键名使用自定义函数比较array_uintersect_assoc() 同时使用数据和键名,但是数据使用自定义函数比较array_uintersect_uassoc() 同时使用数据和键名,都使用自定义函数
推荐学习:《PHP视频教程》
Atas ialah kandungan terperinci Ringkasan fungsi tatasusunan biasa dalam PHP (dengan contoh kod). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!