Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Isih tatasusunan mengikut peraturan pengisihan tersuai dalam PHP, mengekalkan nama kunci asal

Isih tatasusunan mengikut peraturan pengisihan tersuai dalam PHP, mengekalkan nama kunci asal

王林
王林asal
2024-05-04 09:27:01646semak imbas

Dalam PHP, gunakan fungsi uasort() untuk mengisih tatasusunan mengikut peraturan pengisihan tersuai sambil mengekalkan nama kunci asal. Fungsi perbandingan tersuai ialah fungsi yang mengambil dua elemen sebagai input dan mengembalikan integer: nombor negatif bermakna yang pertama adalah kurang daripada yang kedua, sifar bermakna ia adalah sama dan nombor positif bermakna yang pertama lebih besar daripada yang kedua.

PHP 中按自定义排序规则对数组进行排序,保留原始键名

Cara mengisih tatasusunan mengikut peraturan pengisihan tersuai dalam PHP, mengekalkan nama kunci asal

Dalam PHP, mengisih tatasusunan mengikut peraturan pengisihan tersuai adalah keperluan biasa. Contohnya, anda mungkin mahu mengisih senarai produk mengikut nama produk, harga atau kriteria tersuai yang lain.

PHP menyediakan fungsi terbina dalam uasort() yang membolehkan anda mengisih tatasusunan menggunakan fungsi perbandingan tersuai sambil mengekalkan nama kunci asal. uasort(),它允许您使用自定义比较函数对数组进行排序,同时保留原始键名。

语法

uasort ( array &$array , callable $value_compare_func ) : bool
  • $array - 要排序的数组
  • $value_compare_func - 自定义比较函数,返回正数、负数或零

自定义比较函数

自定义比较函数是用于比较数组元素的函数。它将两个参数 $a$b 作为输入,并根据以下规则返回一个整数:

  • 如果 $a 小于 $b,则返回负数。
  • 如果 $a 等于 $b,则返回零。
  • 如果 $a 大于 $b
Syntax

<?php
function compare_string_length($a, $b) {
    return strlen($a) - strlen($b);
}
  • $array - tatasusunan untuk diisih

  • $value_compare_func - fungsi perbandingan tersuai, mengembalikan nombor positif , Nombor negatif atau sifar

    Fungsi perbandingan tersuai

    Fungsi perbandingan tersuai ialah fungsi yang digunakan untuk membandingkan elemen tatasusunan. Ia memerlukan dua parameter $a dan $b sebagai input dan mengembalikan integer mengikut peraturan berikut:

    • Jika $a kod> Jika kod> kurang daripada <code>$b, nombor negatif dikembalikan.
    • Jika $a sama dengan $b, kembalikan sifar.

    • Jika $a lebih besar daripada $b, kembalikan nombor positif.

      🎜Kes Praktikal🎜🎜🎜Berikut ialah contoh fungsi perbandingan tersuai yang membandingkan panjang dua rentetan: 🎜
      <?php
      $fruits = array("apple", "banana", "orange", "grapefruit");
      
      uasort($fruits, "compare_string_length");
      
      print_r($fruits);
      🎜🎜Isih Tatasusunan🎜🎜🎜Sekarang mari kita menyusun tatasusunan mengikut penyusunan tersuai Contoh berikut akan mengisih tatasusunan mengikut panjang rentetan daripada terkecil kepada terbesar: 🎜
      Array
      (
          [grapefruit] => grapefruit
          [orange] => orange
          [apple] => apple
          [banana] => banana
      )
      🎜 Output: 🎜rrreee🎜 Seperti yang anda lihat, tatasusunan kini diisih mengikut panjang rentetan daripada terpendek kepada terbesar, sambil mengekalkan nama kunci asal. 🎜
  • Atas ialah kandungan terperinci Isih tatasusunan mengikut peraturan pengisihan tersuai dalam PHP, mengekalkan nama kunci asal. 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