Rumah >pembangunan bahagian belakang >masalah PHP >Bolehkah tatasusunan php diisih?

Bolehkah tatasusunan php diisih?

青灯夜游
青灯夜游asal
2022-05-07 16:59:242163semak imbas

Tatasusunan PHP boleh diisih. PHP mempunyai pelbagai fungsi pengisihan tatasusunan: 1. sort(), yang boleh diisih dalam tertib menaik, dengan sintaks "sort(array)"; 2. rsort(), yang boleh diisih dalam tertib menurun, dengan sintaks "rsort(array)"; 3. shuffle( ), boleh diisih secara rawak, sintaksnya ialah "shuffle(array)".

Bolehkah tatasusunan php diisih?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi PHP 7.1, komputer DELL G3

Susun atur PHP boleh diisih .

php menyediakan pelbagai fungsi terbina dalam untuk keperluan pengisihan tatasusunan yang berbeza (nilai kunci, nama kunci, tertib menaik, tertib menurun, dsb.).

1 Isih tatasusunan dalam tertib menaik

Terdapat tiga fungsi pengisihan tatasusunan menaik yang biasa digunakan dalam PHP:

  • sort(): Isih elemen tatasusunan dalam tertib menaik

  • asort(): Isih tatasusunan dalam tertib menaik mengikut nilai kunci tatasusunan bersekutu

  • ksort(): Isih tatasusunan dalam tertib menaik mengikut nama kunci tatasusunan yang berkaitan

1. ) fungsi

Fungsi sort() mengisih elemen tatasusunan dalam tertib menaik (dari kecil ke besar, dari rendah ke tinggi).

<?php
header("Content-type:text/html;charset=utf-8");
$arr1 = array(10, 23, 5, 12, 84, 16);
sort($arr1);
var_dump($arr1);

$arr2= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
sort($arr2);
var_dump($arr2);
?>

Output:

Bolehkah tatasusunan php diisih?

Fungsi sort() mempunyai dua parameter: $array (diperlukan) dan $sortingtype ( boleh diketepikan).

Antaranya, parameter $sortingtype digunakan untuk mentakrifkan mod pengisihan fungsi dan menentukan cara membandingkan elemen/item tatasusunan Nilai lalai ialah "SORT_REGULAR".

Parameter $sortingtype boleh ditetapkan kepada nilai berikut:

  • 0 = SORT_REGULAR: Bandingkan elemen tatasusunan secara normal tanpa mengubah jenisnya (nilai lalai); 🎜>

  • 1 = SORT_NUMERIC: Anggap elemen tatasusunan sebagai nombor; 🎜>3 = SORT_LOCALE_STRING: Bandingkan elemen tatasusunan sebagai rentetan berdasarkan tempat semasa (boleh ditukar melalui setlocale()).
  • 4 = SORT_NATURAL: Sama seperti natsort(), ia mengisih rentetan dalam "tertib semula jadi" untuk setiap elemen tatasusunan. Ia baharu dalam PHP5.4.0.
  • 5 = SORT_FLAG_CASE: Boleh digabungkan dengan SORT_STRING atau SORT_NATURAL (ATAU operasi bitwise), pengisihan rentetan yang tidak peka huruf besar-kecil.
  • Hasil keluaran:

  • Fungsi sort() tidak akan mengekalkan hubungan indeks . Padamkan nama kunci asal dalam tatasusunan dan tetapkan nama kunci angka baharu.
<?php
header("Content-type:text/html;charset=utf-8");
$arr1 = array(10, 23, 5, 12, 84, 16);
sort($arr1,2);
var_dump($arr1);

$arr2= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
sort($arr2,1);
var_dump($arr2);
?>
Output:


Bolehkah tatasusunan php diisih?

Fungsi sort() boleh digunakan untuk tatasusunan di mana hubungan antara nilai dan indeks tidak sangat penting (tatasusunan angka), tetapi ia tidak sesuai untuk tatasusunan yang menumpukan pada hubungan antara nilai dan indeks. Pada ketika ini, anda perlu menggunakan fungsi asort() dan ksort().

<?php
header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
sort($age);
var_dump($age);
?>
2. Gunakan fungsi asort()


fungsi asort() akan mengisih tatasusunan bersekutu dalam tertib menaik mengikut nilai utama dan tidak akan mengubah suai nama kunci dalam tatasusunan asal.

Bolehkah tatasusunan php diisih?

Output:

Fungsi asort() juga mempunyai dua parameter, dan nilai parameter ialah sama seperti fungsi sort() , anda boleh merujuknya.

header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
asort($age);
var_dump($age);
?>


3. Gunakan fungsi ksort()

Bolehkah tatasusunan php diisih?fungsi ksort() akan mengisih tatasusunan bersekutu dalam tertib menaik mengikut nama kunci, dan tidak akan mengubah suai nama kunci tatasusunan.

Output:

Output:

<?php
header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
ksort($age);
var_dump($age);
?>


Bolehkah tatasusunan php diisih?Fungsi ksort() juga mempunyai dua parameter Nilai parameter adalah sama dengan fungsi sort(), anda boleh merujuknya.

<?php
header("Content-type:text/html;charset=utf-8");
$arr= array("l"=>"lemon", "o"=>"orange", "b"=>"banana", "a"=>"apple");
ksort($arr);
var_dump($arr);
?>


2 Isih tatasusunan dalam tertib menurun

Bolehkah tatasusunan php diisih?

Terdapat tiga fungsi isihan menurun tatasusunan yang biasa digunakan dalam PHP:

rsort(): Isih elemen tatasusunan dalam tertib menurunarsort(): Isih tatasusunan dalam tertib menurun mengikut nilai kunci asosiatif tatasusunan

    krsort(): Isih tatasusunan dalam susunan menurun mengikut nama kunci tatasusunan yang berkaitan
  • 1 fungsi rsort()

  • rsort() fungsi digunakan untuk mengisih elemen tatasusunan dalam tertib menurun, iaitu dari besar ke kecil dan dari tinggi ke rendah.
  • Mari kita lihat contoh kod:

Hasil keluaran:

rsort() 函数有两个参数:$array(必须)和$sortingtype(可省略)。$sortingtype参数用于表示排序模式,具体取值可以参考上篇文章的sort()函数。下文arsort()和krsort()同样参考sort()函数。

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(2, 1, 5, 16, 29, 15);
rsort($arr,2);
var_dump($arr);
?>

输出结果:

Bolehkah tatasusunan php diisih?

rsort()和sort()函数一样,都不会保持索引关系,会删除数组中原有的键名,并为其重新赋值;因此不适合用于注重值和索引间关系的数组。

2、使用arsort()函数

arsort()函数会根据关联数组的键值进行降序排序,且不会修改原数组中的键名。

<?php
header("Content-type:text/html;charset=utf-8");
$age = array("张三"=>30,"李四"=>23,"王五"=>15,"李华"=>12,"娜娜"=>26,"小红"=>16);
arsort($age);
var_dump($age);

arsort($age,2);
var_dump($age);
?>

输出结果:

Bolehkah tatasusunan php diisih?

3、使用krsort()函数

krsort()函数会根据关联数组的键名进行降序排序,也不会修改原数组中的键名。

<?php
header("Content-type:text/html;charset=utf-8");
$arr= array("l"=>"lemon", "o"=>"orange", "b"=>"banana", "a"=>"apple");
krsort($arr);
var_dump($arr);

krsort($arr,1);
var_dump($arr);
?>

输出结果:

Bolehkah tatasusunan php diisih?

3、随机排序

在PHP中,可以使用shuffle()函数随机排序,打乱数组元素。

shuffle()函数会把数组中的元素按随机顺序重新排列。

<?php
header("Content-type:text/html;charset=utf-8");
$arr1 = array(10, 23, 5, 12, 84, 16);
shuffle($arr1);
var_dump($arr1);

$arr2= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
shuffle($arr2);
var_dump($arr2);
?>

输出结果:

Bolehkah tatasusunan php diisih?

刷新一下,结果就改变了:

Bolehkah tatasusunan php diisih?

Bolehkah tatasusunan php diisih?

说明:shuffle()函数不仅会将数组随机打乱,还会删除数组中原有的键名,并为其赋与新的数值键名(即不会保持索引关系)。

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Bolehkah tatasusunan php diisih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn