Heim >Backend-Entwicklung >PHP-Problem >So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

青灯夜游
青灯夜游Original
2021-08-23 19:45:599019Durchsuche

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(
    &#39;id&#39; => 5698,
    &#39;first_name&#39; => &#39;Bill&#39;,
    &#39;last_name&#39; => &#39;Gates&#39;,
  ),
  array(
    &#39;id&#39; => 3809,
    &#39;first_name&#39; => &#39;Mark&#39;,
    &#39;last_name&#39; => &#39;Zuckerberg&#39;,
  ),
  array(
    &#39;id&#39; => 4767,
    &#39;first_name&#39; => &#39;Steve&#39;,
    &#39;last_name&#39; => &#39;Aobs&#39;,
  )
);
    // 取得列的列表
    foreach ($data as $key => $row)
    {
        $ID[$key]  = $row[&#39;id&#39;];
        $FirstName[$key] = $row[&#39;first_name&#39;];
				$LastName[$key] = $row[&#39;last_name&#39;];
    }

    array_multisort($ID, SORT_ASC, $data);

var_dump($data);
?>

分析一下代码:

  • 使用foreach循环将同一字段的数据放在一起,使用var_dump($ID)var_dump($FirstName)var_dump($LastName)输出各个字段数据试试:

    So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

  • 使用array_multisort($ID, SORT_ASC, $data)根据二维数组$data中 “id”那一列字段进行升序排序。

因此输出结果:

So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

而如果想要根据id降序排列,只要将该函数第二个参数设置为SORT_DESC即可:

array_multisort($ID, SORT_DESC, $data);

输出结果:

So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

如果想要根据last_name进行排序,只要将该函数第一个参数设置为$LastName数组即可

array_multisort($LastName, SORT_DESC, $data);

输出结果:

So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

下面我们来了解一下array_multisort()函数:

array_multisort() 函数返回一个排序数组。用户可以输入一个或多个数组,该函数会先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。语法如下:

array_multisort(array1,sorting order,sorting type,array2,array3...)

So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

方法2:array_column()函数+array_multisort()函数

在方法1中,我们是利用foreach循环来获取同一字段的数据,这有点复杂。其实,可以使用array_column()函数来实现这一操作。array_column()函数可以返回输入数组中某个单一列的值。

<?php
$data = array(
  array(
    &#39;id&#39; => 5698,
    &#39;first_name&#39; => &#39;Bill&#39;,
    &#39;last_name&#39; => &#39;Gates&#39;,
  ),
  array(
    &#39;id&#39; => 3809,
    &#39;first_name&#39; => &#39;Mark&#39;,
    &#39;last_name&#39; => &#39;Zuckerberg&#39;,
  ),
  array(
    &#39;id&#39; => 4767,
    &#39;first_name&#39; => &#39;Steve&#39;,
    &#39;last_name&#39; => &#39;Aobs&#39;,
  )
);
//根据字段id对数组$data进行升序排列
$key = array_column($data,&#39;id&#39;);
array_multisort($key,SORT_ASC,$data);

var_dump($data);
?>

输出结果:

So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

想要根据哪个字段来排序就将array_column($data,'id')
Methode 1: foreach-Schleife + array_multisort()-Funktion

$key = array_column($data,&#39;first_name&#39;);
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: So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

    So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

  • Verwenden Sie array_multisort($ID, SORT_ASC, $data), um eine aufsteigende Reihenfolge basierend auf dem Spaltenfeld „id“ im durchzuführen zweidimensionales Array $data Sort.

Das Ausgabeergebnis ist also:

So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

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);

Ergebnis ausgeben : So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)

Wenn Sie nach Nachnamen sortieren möchten, setzen Sie einfach den ersten Parameter der Funktion auf das Array $LastNamerrreeeAusgabeergebnis:

🎜So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden)🎜🎜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🎜3. png🎜🎜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: 🎜🎜So sortieren Sie zweidimensionale Arrays beim PHP-Array-Lernen (2 Methoden) 🎜🎜Wenn Sie nach dem Feld sortieren möchten, ersetzen Sie einfach den zweiten Parameter der Funktion array_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!

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