Heim >Backend-Entwicklung >PHP-Problem >So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)
Im vorherigen Artikel „PHP In „Array-Lernen: Wie man Elementfragmente abfängt (zwei Methoden) “ haben wir vorgestellt, wie man Arrays abfängt und Teilfragmente von Array-Elementen zurückgibt Zwei Methoden. Dieses Mal setzen wir das Studium von PHP-Arrays fort und sprechen über die Methode zum Sortieren zweidimensionaler Array-Elemente. Interessierte Freunde können es lernen Mehr erfahren~
→ Verwandte Empfehlungen: 《Zusammenfassung der PHP-Array-Lernreihe (kontinuierlich aktualisiert~)》
Bevor wir einige Sortiermethoden für eindimensionale Arrays kennengelernt haben, wissen wir, dass PHP über viele integrierte Methoden verfügt Funktionen zum Implementieren der absteigenden und aufsteigenden Sortierung eindimensionaler Arrays. Verfügen zweidimensionale Arrays also auch über integrierte Funktionen zum Implementieren der Sortierung?
Die Antwort lautet: Ja! PHP verfügt über eine integrierte Funktion array_multisort()
, mit der zweidimensionale Arrays sortiert werden können. Im Folgenden stellen wir Ihnen zwei Methoden zum Sortieren zweidimensionaler Arrays mithilfe der Funktion array_multisort() vor. array_multisort()
函数可实现二维数组的排序。下面我们给大家介绍两种利用array_multisort()函数对二维数组进行排序的方法。
方法1:foreach循环 + array_multisort()函数
<?php $data = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates', ), array( 'id' => 3809, 'first_name' => 'Mark', 'last_name' => 'Zuckerberg', ), array( 'id' => 4767, 'first_name' => 'Steve', 'last_name' => 'Aobs', ) ); // 取得列的列表 foreach ($data as $key => $row) { $ID[$key] = $row['id']; $FirstName[$key] = $row['first_name']; $LastName[$key] = $row['last_name']; } array_multisort($ID, SORT_ASC, $data); var_dump($data); ?>
分析一下代码:
使用foreach循环将同一字段的数据放在一起,使用var_dump($ID)
、var_dump($FirstName)
、var_dump($LastName)
输出各个字段数据试试:
使用array_multisort($ID, SORT_ASC, $data)
根据二维数组$data中 “id
”那一列字段进行升序排序。
因此输出结果:
而如果想要根据id降序排列,只要将该函数第二个参数设置为SORT_DESC
即可:
array_multisort($ID, SORT_DESC, $data);
输出结果:
如果想要根据last_name进行排序,只要将该函数第一个参数设置为$LastName数组即可
array_multisort($LastName, SORT_DESC, $data);
输出结果:
下面我们来了解一下array_multisort()函数:
array_multisort() 函数返回一个排序数组。用户可以输入一个或多个数组,该函数会先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。语法如下:
array_multisort(array1,sorting order,sorting type,array2,array3...)
方法2:array_column()函数+array_multisort()函数
在方法1中,我们是利用foreach循环来获取同一字段的数据,这有点复杂。其实,可以使用array_column()函数来实现这一操作。array_column()函数可以返回输入数组中某个单一列的值。
<?php $data = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates', ), array( 'id' => 3809, 'first_name' => 'Mark', 'last_name' => 'Zuckerberg', ), array( 'id' => 4767, 'first_name' => 'Steve', 'last_name' => 'Aobs', ) ); //根据字段id对数组$data进行升序排列 $key = array_column($data,'id'); array_multisort($key,SORT_ASC,$data); var_dump($data); ?>
输出结果:
想要根据哪个字段来排序就将array_column($data,'id')
Methode 1: foreach-Schleife + array_multisort()-Funktion
$key = array_column($data,'first_name'); array_multisort($key,SORT_DESC,$data);
Analysieren Sie den Code:
Verwenden Sie die foreach-Schleife, um Fügen Sie die Daten desselben Felds zusammen und verwenden Sie var_dump($ID)
, var_dump($FirstName)
, var_dump($LastName)
zur Ausgabe jedes Feld Versuchsdaten:
array_multisort($ID, SORT_ASC, $data)
, um eine aufsteigende Reihenfolge basierend auf dem Spaltenfeld „id
“ im durchzuführen zweidimensionales Array $data Sort.
Und wenn Sie in absteigender Reihenfolge nach ID sortieren möchten, setzen Sie einfach den zweiten Parameter der Funktion auf SORT_DESC
:
array_column(array,column_key,index_key);
Wenn Sie nach Nachnamen sortieren möchten, setzen Sie einfach den ersten Parameter der Funktion auf das Array $LastNamerrreeeAusgabeergebnis:
🎜🎜🎜Werfen wir einen Blick auf die Funktion array_multisort(): 🎜🎜🎜array_multisort() Die Funktion gibt ein sortiertes Array zurück . Der Benutzer kann ein oder mehrere Arrays eingeben und die Funktion sortiert das erste Array, dann die anderen Arrays, und wenn zwei oder mehr Werte gleich sind, sortiert sie das nächste Array. Die Syntax lautet wie folgt: 🎜rrreee🎜🎜🎜Methode 2: Funktion array_column() + Funktion array_multisort()🎜🎜In Methode 1 verwenden wir eine foreach-Schleife, um die Daten desselben Felds zu erhalten, was etwas kompliziert ist . Tatsächlich können Sie die Funktion array_column() verwenden, um diesen Vorgang auszuführen. Die Funktion array_column() kann den Wert einer einzelnen Spalte im Eingabearray zurückgeben. 🎜rrreee🎜Ausgabeergebnis: 🎜🎜🎜🎜Wenn Sie nach dem Feld sortieren möchten, ersetzen Sie einfach den zweiten Parameter der Funktionarray_column($data,'id')
durch dieses Feld (Schlüsselwert). Wenn Sie beispielsweise in absteigender Reihenfolge basierend auf dem Feld „Vorname“ sortieren möchten, können Sie Folgendes tun: 🎜🎜rrreee🎜 Ausgabeergebnis: 🎜🎜🎜🎜🎜 Werfen wir einen Blick auf die Funktion array_column(): 🎜🎜array_column() Gibt eine einzelne Spalte im Eingabearraywert zurück. Das Syntaxformat lautet: 🎜rrreee🎜🎜🎜🎜Rückgabewert: Gibt ein Array zurück. Der Wert des Arrays ist der Wert einer einzelnen Spalte im Eingabearray. 🎜🎜Okay, das war's für den Moment. Wenn Sie noch etwas wissen möchten, können Sie hier klicken. → →🎜php-Video-Tutorial🎜🎜🎜Abschließend empfehle ich ein kostenloses Video-Tutorial zu PHP-Arrays: 🎜PHP-Funktions-Array-Array-Funktions-Video-Erklärung🎜, kommen Sie und lernen Sie! 🎜Das obige ist der detaillierte Inhalt vonSo sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!