Heim  >  Artikel  >  Backend-Entwicklung  >  Sortieren Sie Arrays nach benutzerdefinierten Sortierregeln in PHP und behalten Sie dabei die ursprünglichen Schlüsselnamen bei

Sortieren Sie Arrays nach benutzerdefinierten Sortierregeln in PHP und behalten Sie dabei die ursprünglichen Schlüsselnamen bei

王林
王林Original
2024-05-04 09:27:01646Durchsuche

Verwenden Sie in PHP die Funktion uasort(), um ein Array nach benutzerdefinierten Sortierregeln zu sortieren und dabei die ursprünglichen Schlüsselnamen beizubehalten. Eine benutzerdefinierte Vergleichsfunktion ist eine Funktion, die zwei Elemente als Eingabe verwendet und eine ganze Zahl zurückgibt: Eine negative Zahl bedeutet, dass ersteres kleiner als letzteres ist, Null bedeutet, dass sie gleich sind, und eine positive Zahl bedeutet, dass ersteres größer als letzteres ist.

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

So sortieren Sie ein Array nach benutzerdefinierten Sortierregeln in PHP und behalten dabei die ursprünglichen Schlüsselnamen bei

In PHP ist das Sortieren von Arrays nach benutzerdefinierten Sortierregeln eine häufige Anforderung. Beispielsweise möchten Sie möglicherweise eine Produktliste nach Produktname, Preis oder anderen benutzerdefinierten Kriterien sortieren.

PHP bietet eine integrierte Funktion uasort(), die es Ihnen ermöglicht, ein Array mithilfe einer benutzerdefinierten Vergleichsfunktion zu sortieren und dabei die ursprünglichen Schlüsselnamen beizubehalten. 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 – das zu sortierende Array

  • $value_compare_func – benutzerdefinierte Vergleichsfunktion, gibt eine positive Zahl zurück , Negative Zahl oder Null

    Benutzerdefinierte Vergleichsfunktion

    Eine benutzerdefinierte Vergleichsfunktion ist eine Funktion zum Vergleichen von Array-Elementen. Es nimmt zwei Parameter $a und $b als Eingabe und gibt eine Ganzzahl gemäß den folgenden Regeln zurück:

    • If $a code> Wenn code> kleiner als <code>$b ist, wird eine negative Zahl zurückgegeben.
    • Wenn $a gleich $b ist, wird Null zurückgegeben.

    • Wenn $a größer als $b ist, wird eine positive Zahl zurückgegeben.

      🎜Praktischer Fall🎜🎜🎜Hier ist ein Beispiel für eine benutzerdefinierte Vergleichsfunktion, die die Länge zweier Zeichenfolgen vergleicht: 🎜
      <?php
      $fruits = array("apple", "banana", "orange", "grapefruit");
      
      uasort($fruits, "compare_string_length");
      
      print_r($fruits);
      🎜🎜Array sortieren🎜🎜🎜Lassen Sie uns nun das Array nach benutzerdefinierter Sortierung sortieren. Im folgenden Beispiel wird ein Array nach Zeichenfolgenlänge vom kleinsten zum größten sortiert: 🎜
      Array
      (
          [grapefruit] => grapefruit
          [orange] => orange
          [apple] => apple
          [banana] => banana
      )
      🎜 Ausgabe: 🎜rrreee🎜 Wie Sie sehen können, wird das Array jetzt nach Zeichenfolgenlänge vom kürzesten zum größten sortiert, wobei die ursprünglichen Schlüsselnamen beibehalten werden. 🎜
  • Das obige ist der detaillierte Inhalt vonSortieren Sie Arrays nach benutzerdefinierten Sortierregeln in PHP und behalten Sie dabei die ursprünglichen Schlüsselnamen bei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn