Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung der PHP-Sortierfunktion (mit Beispielen)

Detaillierte Erklärung der PHP-Sortierfunktion (mit Beispielen)

王林
王林Original
2019-08-31 14:36:205098Durchsuche

Detaillierte Erklärung der PHP-Sortierfunktion (mit Beispielen)

Es gibt viele Möglichkeiten zum Sortieren. Normalerweise verwenden wir häufig folgende Array-Sortierfunktionen: sort(), rsort(), asort(). , arsort(), ksort(), krsort(). Im Folgenden finden Sie eine ausführliche Einführung für alle.

sort(array,sortingtype);

Detaillierte Erklärung der PHP-Sortierfunktion (mit Beispielen)

0 = SORT_REGULAR – Standard. Bringen Sie jedes Element in die reguläre Reihenfolge (Standard-ASCII, keine Änderung des Typs)

1 = SORT_NUMERIC – Behandeln Sie jedes Element als Zahl.

2 = SORT_STRING – Behandeln Sie jedes Element als Zeichenfolge.

3 = SORT_LOCALE_STRING – Behandeln Sie jedes Element als Zeichenfolge, basierend auf dem aktuellen Gebietsschema (kann über setlocale() geändert werden).

4 = SORT_NATURAL – Behandeln Sie jedes Element als Zeichenfolge und verwenden Sie eine natürliche Sortierung wie natsort().

5 = SORT_FLAG_CASE – Kann mit SORT_STRING oder SORT_NATURAL kombiniert (bitweise ODER) werden, um Zeichenfolgen ohne Berücksichtigung der Groß-/Kleinschreibung zu sortieren.

Definition und Verwendung: Die Funktion

sort() sortiert das Indexarray in aufsteigender Reihenfolge.

Die Funktion rsort() sortiert das Indexarray in absteigender Reihenfolge, und die andere Verwendung ist dieselbe.

Hinweis: Diese Funktion weist der Einheit im Array einen neuen Schlüsselnamen zu. Der ursprüngliche Schlüsselname wird gelöscht.

Gibt bei Erfolg TRUE zurück, andernfalls FALSE.

Tipp: Bitte verwenden Sie die Funktion rsort(), um das Indexarray in absteigender Reihenfolge zu sortieren. Die Funktion

sort() wird verwendet, um Array-Zellen von niedrig nach hoch zu sortieren.

rsort()-Funktion wird verwendet, um Array-Zellen von hoch nach niedrig zu sortieren.

Die Funktion asort() wird verwendet, um die Array-Zellen von niedrig nach hoch zu sortieren und die Indexbeziehung aufrechtzuerhalten.

Die PHP-Funktion asort() wird verwendet, um die Array-Zellen von niedrig nach hoch zu sortieren und die Indexbeziehung aufrechtzuerhalten. Sie gibt TRUE zurück, wenn sie erfolgreich ist, und FALSE, wenn sie fehlschlägt.

Die Funktion arsort() wird verwendet, um die Array-Zellen von hoch nach niedrig zu sortieren und die Indexbeziehung aufrechtzuerhalten.

Die PHP-Funktion asort() verhält sich entgegengesetzt zu asort(). Sie sortiert die Array-Zellen von hoch nach niedrig und behält die Indexbeziehung bei. Bitte beachten Sie die Verwendung der Funktion asort().

Die Funktion ksort() wird verwendet, um Array-Zellen von niedrig nach hoch nach Schlüsselnamen zu sortieren.

Die PHP-Funktion ksort() wird verwendet, um Array-Zellen von niedrig nach hoch nach Schlüsselnamen zu sortieren. Sie gibt TRUE zurück, wenn sie erfolgreich ist, und FALSE, wenn sie fehlschlägt. Diese Funktion behält den ursprünglichen Schlüsselnamen bei und wird daher häufig in assoziativen Arrays verwendet.

krsort() 函数用于对数组单元按照键名从高到低进行排序。

PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

使用用户自定义的比较函数对数组 $a 中的元素进行排序:

usort(array,myfunction);
<?php
function my_sort($a,$b){
   if ($a==$b) return 0;
   return ($a<$b)?-1:1;
}

$a=array(4,2,8,6);
usort($a,"my_sort");

$arrlength=count($a);
for($x=0;$x<$arrlength;$x++)
   {
      echo $a[$x];
      echo "<br>";
   }?>
1、使用array_multisort

使用这个方法,会比较麻烦些,要将age提取出来存储到一维数组里,然后按照age升序排列。具体代码如下:

代码如下:<?php
$ages = array();
foreach ($users as $user) {
  $ages[] = $user[&#39;age&#39;];
}
array_multisort($ages, SORT_ASC, $users);

执行后,$users就是排序好的数组了,可以打印出来看看。如果需要先按年龄升序排列,再按照名称升序排列,方法同上,就是多提取一个名称数组出来,最后的排序方法这样调用:

代码如下:
array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
2、使用usort
使用这个方法最大的好处就是可以自定义一些比较复杂的排序方法。例如按照名称的长度降序排列:

代码如下:
<?php
      usort($users, function($a, $b) {
      $al = strlen($a[&#39;name&#39;]);
      $bl = strlen($b[&#39;name&#39;]);
      if ($al == $bl) 
          return 0;      
          return ($al > $bl) ? -1 : 1;
    });

这里使用了匿名函数,如果有需要也可以单独提取出来。其中$a, $b可以理解为$users数组下的元素,可以直接索引name值,
并计算长度,而后比较长度就可以了。

以上是工作中常用的数组排序方法,想了解更多相关问题请访问PHP中文网:PHP视频教程

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der PHP-Sortierfunktion (mit Beispielen). 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