Php mengurutkan array multi-dimensi menurun

Fungsi array_multisort dapat digunakan untuk mengurutkan array multidimensi berdasarkan beberapa kunci −

Contoh

$my_list = array(
   array('ID' => 1, 'title' => 'data one', 'event_type' => 'one'),
   array('ID' => 2, 'title' => 'data two', 'event_type' => 'zero'),
   array('ID' => 3, 'title' => 'data three', 'event_type' => 'one'),
   array('ID' => 4, 'title' => 'data four', 'event_type' => 'zero')
);
# The list of sorted columns and their data can be obtained. This will be passed to the array_multisort function.
$sort = array();
foreach($my_list as $k=>$v) {
   $sort['title'][$k] = $v['title'];
   $sort['event_type'][$k] = $v['event_type'];
}
# It is sorted by event_type in descending order and the title is sorted in ascending order.
array_multisort($sort['event_type'], SORT_DESC, $sort['title'], SORT_ASC,$my_list);

Untuk PHP versi 5. 5. 0 -

array_multisort(array_column($my_list, 'event_type'), SORT_DESC,
array_column($my_list, 'title'), SORT_ASC,
$my_list);
_

Keluaran

Ini akan menghasilkan output berikut -

array (
   0 =>
   array (
      'ID' => 4,
      'title' => 'data four',
      'event_type' => 'zero',
   ),
   1 =>
   array (
      'ID' => 3,
      'title' => 'data two',
      'event_type' => 'zero',
   ),
   2 =>
   array (
      'ID' => 1,
      'title' => 'data one',
      'event_type' => 'one',
   ),
   3 =>
   array (
      'ID' => 2,
      'title' => 'data three',
      'event_type' => 'one',
   ),
)

Php mengurutkan array multi-dimensi menurun


Php mengurutkan array multi-dimensi menurun

Anda dapat menggunakan fungsi ksort() untuk mengurutkan array bersarang dalam urutan menaik. Lihat contoh berikut-

<pre>
<?php
$employees = array(
                    5 => array("Name" => "Peter", "Age" => 27),
                    3 => array("Name" => "Smith", "Age" => 30),
                    7 => array("Name" => "Jack", "Age" => 42)
            );

if(ksort($employees))  print_r($employees);
?>
</pre>
</pre>

[id file wpdm_file=100]

Keluaran

Array(   
    [3] => Array       
        (           
            [Name] => Smith           
            [Age] => 30       
        )    
    [5] => Array       
        (           
            [Name] => Peter           
            [Age] => 27       
         )    
     [7] => Array       
         (           
            [Name] => Jack           
            [Age] => 42       
         ) 
)

Bagaimana itu bekerja

Baris 3-7 Lihat kunci dari array bersarang adalah 5, 3, dan 7 berturut-turut. Kami akan mengurutkan kunci ini dengan urutan menaik. Baris 9Setelah berhasil menyortir larik $employees[] dengan kunci, fungsi ksort() mengembalikan nilai true, dan mencetak larik yang diurutkan. Lihat bahwa kunci sekarang diurutkan dalam urutan menaik sebagai 3, 5, dan 7

 

Metode 2. Menggunakan fungsi krsort()

Anda juga dapat menggunakan fungsi krsort() untuk mengurutkan kunci dari array multidimensi. Perbedaan fungsi sebelumnya dengan yang satu adalah fungsi krsort() akan mengurutkan kunci dengan urutan terbalik. Lihat contoh berikut-

Urutan elemen array dapat diurutkan berdasarkan kunci menggunakan perulangan foreach(), tetapi ini akan menjadi proses yang rumit, dan waktu eksekusinya tinggi. Fungsi PHP array_multisort() menyediakan cara mudah untuk mengurutkan array multidimensi berdasarkan nilai kunci. Dalam cuplikan kode contoh ini, kunci first_name ditentukan untuk mengurutkan larik $records dalam urutan menaik

Metode pertama untuk mengurutkan array adalah dengan menggunakan fungsi usort(). Berikut adalah kode yang dapat kita gunakan untuk melakukan pengurutan ini

function cmp($a, $b)
{
	return strcmp($a["name"], $b["name"]);
}
usort($vc_array, "cmp");
_

Fungsi usort() mengurutkan $vc_array dengan menggunakan fungsi perbandingan (cmp) yang kita buat. Kode di atas dapat digunakan untuk mengurutkan array multi dimensi berdasarkan nilai kolom nama array. Ini adalah cara mudah untuk mengurutkan array multi-dimensi berdasarkan nilai satu kunci

Jika Anda ingin mengurutkan array berdasarkan nilai beberapa kunci, Anda mungkin harus menulis beberapa logika kompleks dalam fungsi panggilan balik untuk melakukannya. Namun, ada cara alternatif dengan menggunakan fungsi array_multisort(). array_multisort() dapat digunakan untuk mengurutkan beberapa array sekaligus, atau array multidimensi berdasarkan satu atau lebih dimensi

Urutkan menggunakan array_multisort berdasarkan nilai 1 kunci

Sekarang mari kita lihat bagaimana menggunakan fungsi array_multisort() untuk melakukan penyortiran yang sama seperti yang kita lakukan menggunakan usort di atas

foreach ($vc_array as $key => $row)
{
	$vc_array_name[$key] = $row['name'];
}
array_multisort($vc_array_name, SORT_ASC, $vc_array);

Pada kode di atas pertama-tama kita membuat array baru $vc_array_name untuk menyimpan semua nilai yang ingin kita urutkan $vc_array dengan. Kemudian kita menggunakan array_multisort() untuk mengurutkan array. Dalam fungsi ini pertama-tama kita mengurutkan $vc_array_name menaik dan kemudian mengurutkan $vc_array

Urutkan menggunakan array_multisort berdasarkan nilai 2 kunci

Sekarang, mari kita lihat bagaimana kita dapat mengurutkan array yang sama berdasarkan nilai dari 2 kunci array. Dalam contoh ini, kami akan mengurutkan berdasarkan nilai naik, nama turun

foreach ($vc_array as $key => $row)
{
	$vc_array_value[$key] = $row['value'];
	$vc_array_name[$key] = $row['name'];
}
array_multisort($vc_array_value, SORT_ASC, $vc_array_name, SORT_DESC, $vc_array);
_

Kode ini pertama mengurutkan

foreach ($vc_array as $key => $row)
{
	$vc_array_name[$key] = $row['name'];
}
array_multisort($vc_array_name, SORT_ASC, $vc_array);
0 turun,
foreach ($vc_array as $key => $row)
{
	$vc_array_name[$key] = $row['name'];
}
array_multisort($vc_array_name, SORT_ASC, $vc_array);
4 turun, $vc_array_name naik dan kemudian $vc_array menggunakan array yang diurutkan ini. Dengan menggunakan metode ini kita dapat mengurutkan array multi-dimensi tergantung pada nilai dari beberapa kunci yang berbeda. Metode ini dapat diperluas untuk mengurutkan array dengan sejumlah nilai

Bagaimana cara mengurutkan multi

Fungsi array_multisort() mengembalikan array yang diurutkan. Anda dapat menetapkan satu atau lebih array. Fungsi mengurutkan larik pertama, dan larik lainnya mengikuti, kemudian, jika dua atau lebih nilai sama, fungsi akan mengurutkan larik berikutnya, dan seterusnya.

Bagaimana Anda mengurutkan array dalam urutan menurun di PHP?

sort() - mengurutkan array dalam urutan menaik. rsort() - mengurutkan array dalam urutan menurun. asort() - mengurutkan array asosiatif dalam urutan menaik, sesuai dengan nilainya.

Bagaimana Anda mengurutkan multi

Cara Menyortir Array Multi-dimensi berdasarkan Nilai Kunci di PHP .
Gunakan fungsi PHP array_column() untuk mendapatkan nilai dari kolom kunci tertentu dalam array
Gunakan fungsi PHP array_multisort() untuk mengurutkan array berdasarkan nilai kunci

Fungsi PHP mana yang digunakan untuk mengurutkan multi

array_multisort() adalah fungsi bawaan dalam PHP yang digunakan untuk mengurutkan beberapa array sekaligus atau array multidimensi dengan masing-masing .