php 二维数组排序 array_multisort
对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下:
array_multisort(array1,sorting order, sorting type,array2,array3..)是对多个数组或多维数组进行排序的函数。
array1 | 必需。规定输入的数组。 |
sorting order | 可选。规定排列顺序。可能的值是 SORT_ASC 和 SORT_DESC。 |
sorting type | 可选。规定排序类型。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。 |
array2 | 可选。规定输入的数组。 |
array3 | 可选。规定输入的数组。 |
参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。
第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:
随后可以指定排序的类型:
<?php function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){ if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ $key_arrays[] = $array[$sort_key]; }else{ return false; } } }else{ return false; } array_multisort($key_arrays,$sort_order,$sort_type,$arrays); return $arrays; } $person = array( array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180), array('id'=>2,'name'=>'tom','weight'=>53,'height'=>150), array('id'=>3,'name'=>'jerry','weight'=>120,'height'=>156), array('id'=>4,'name'=>'bill','weight'=>110,'height'=>190), array('id'=>5,'name'=>'linken','weight'=>80,'height'=>200), array('id'=>6,'name'=>'madana','weight'=>95,'height'=>110), array('id'=>7,'name'=>'jordan','weight'=>70,'height'=>170) ); var_dump($person); $person = my_sort($person,'name',SORT_ASC,SORT_STRING); var_dump($person); $person = my_sort($person,'weight'); var_dump($person);?>
结果如下:
<strong>array</strong> (size=7) 0 => <strong>array</strong> (size=4) 'id' => int 1 'name' => string 'fj' (length=2) 'weight' => int 100 'height' => int 180 1 => <strong>array</strong> (size=4) 'id' => int 2 'name' => string 'tom' (length=3) 'weight' => int 53 'height' => int 150 2 => <strong>array</strong> (size=4) 'id' => int 3 'name' => string 'jerry' (length=5) 'weight' => int 120 'height' => int 156 3 => <strong>array</strong> (size=4) 'id' => int 4 'name' => string 'bill' (length=4) 'weight' => int 110 'height' => int 190 4 => <strong>array</strong> (size=4) 'id' => int 5 'name' => string 'linken' (length=6) 'weight' => int 80 'height' => int 200 5 => <strong>array</strong> (size=4) 'id' => int 6 'name' => string 'madana' (length=6) 'weight' => int 95 'height' => int 110 6 => <strong>array</strong> (size=4) 'id' => int 7 'name' => string 'jordan' (length=6) 'weight' => int 70 'height' => int 170
<strong>array</strong> (size=7) 0 => <strong>array</strong> (size=4) 'id' => int 4 'name' => string 'bill' (length=4) 'weight' => int 110 'height' => int 190 1 => <strong>array</strong> (size=4) 'id' => int 1 'name' => string 'fj' (length=2) 'weight' => int 100 'height' => int 180 2 => <strong>array</strong> (size=4) 'id' => int 3 'name' => string 'jerry' (length=5) 'weight' => int 120 'height' => int 156 3 => <strong>array</strong> (size=4) 'id' => int 7 'name' => string 'jordan' (length=6) 'weight' => int 70 'height' => int 170 4 => <strong>array</strong> (size=4) 'id' => int 5 'name' => string 'linken' (length=6) 'weight' => int 80 'height' => int 200 5 => <strong>array</strong> (size=4) 'id' => int 6 'name' => string 'madana' (length=6) 'weight' => int 95 'height' => int 110 6 => <strong>array</strong> (size=4) 'id' => int 2 'name' => string 'tom' (length=3) 'weight' => int 53 'height' => int 150
<strong>array</strong> (size=7) 0 => <strong>array</strong> (size=4) 'id' => int 2 'name' => string 'tom' (length=3) 'weight' => int 53 'height' => int 150 1 => <strong>array</strong> (size=4) 'id' => int 7 'name' => string 'jordan' (length=6) 'weight' => int 70 'height' => int 170 2 => <strong>array</strong> (size=4) 'id' => int 5 'name' => string 'linken' (length=6) 'weight' => int 80 'height' => int 200 3 => <strong>array</strong> (size=4) 'id' => int 6 'name' => string 'madana' (length=6) 'weight' => int 95 'height' => int 110 4 => <strong>array</strong> (size=4) 'id' => int 1 'name' => string 'fj' (length=2) 'weight' => int 100 'height' => int 180 5 => <strong>array</strong> (size=4) 'id' => int 4 'name' => string 'bill' (length=4) 'weight' => int 110 'height' => int 190 6 => <strong>array</strong> (size=4) 'id' => int 3 'name' => string 'jerry' (length=5) 'weight' => int 120 'height' => int 156
这里的重点就是,先把要排序的key存到一个一维数组中,然后就可以使用array_multisort()这个函数,将数组按照key进行排序了,当然,这里的排序你完全可以不适用array_multisort()这个函数,仅仅通过foreach遍历也能达到这个效果,但是既然php开发者给我们提供了更好的办法,我们就可以省去不必要的麻烦了。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c
