Heim Backend-Entwicklung PHP-Tutorial Hinweise zur Verwendung der PHP-Funktion array_multisort()

Hinweise zur Verwendung der PHP-Funktion array_multisort()

Jan 06, 2017 pm 04:55 PM

Function bool array_multisort (array &$arr [, Mixed $arg = SORT_ASC [, Mixed $arg = SORT_REGULAR [, Mixed $...]]] )
Parameterbeschreibung: Die Funktion sortiert mehrere Arrays oder mehrdimensionale Arrays Sortieren
Der erste Parameter ist ein Array, jeder nachfolgende Parameter kann ein Array oder das folgende Sortierreihenfolge-Flag sein
SORT_ASC – Standardmäßig in aufsteigender Reihenfolge sortieren
SORT_DESC – In absteigender Reihenfolge sortieren
Das ist möglich Geben Sie dann den Sortiertyp
SORT_REGULAR an – die Standardeinstellung. Ordnen Sie jeden Artikel in regelmäßiger Reihenfolge an.
SORT_NUMERIC – Sortieren Sie jedes Element in numerischer Reihenfolge.
SORT_STRING – Sortieren Sie jedes Element in alphabetischer Reihenfolge.
Beispielcode

$arr1 = array('10', 11, 100, 100, 'a'); 
$arr2 = array(1, 2, 3, '2', 5); 
array_multisort($arr1, $arr2);
Nach dem Login kopieren

Das Ergebnis ist:
$arr1
Array ( [0] => 10 [1] => a [2] => 11 [ 3 ] => 100 [4] => 100 )
# '10' wird im Vergleich zu 11, 100, 100 in eine ganze Zahl umgewandelt, die kleiner ist als die anderen drei Zahlen
# '10 ' liegt in 'a' Beim Vergleich als String hat das erste Zeichen '1' einen ASCII-Codewert von 49, der kleiner als 'a' ist (der ASCII-Wert ist 97), also ist '10' das kleinste Element
# 'a' liegt im Vergleich der anderen drei Zahlen Wenn es in eine Ganzzahl 0 umgewandelt wird, die kleiner ist als die anderen drei Zahlen
$arr2
Array ( [0] => 1 [ 1] => 5 [2] => 2 [3] => 2 [4] => an der Position [0]
# $arr1[2] => 100, $arr1[ 3] => 100 entspricht den $arr2-Elementen 3 bzw. '2'. 3 ist größer als '2', daher ist der sortierte Index von $arr1[2] => 100, der 2 entspricht,
3, und der sortierte Index von $arr1[3] => 100, der 3 entspricht, ist 4
Zusammenfassung
1. Die Anzahl der an der Sortierung beteiligten Array-Elemente bleibt gleich
2. Die Positionen der sortierten Array-Elemente entsprechen beispielsweise '10' => 1 , 11 => 2
3. Die folgenden Arrays werden nach der Reihenfolge des vorherigen Arrays sortiert
4. Wenn das vorherige Array auf gleiche Elemente stößt, vergleichen Sie das folgende Array

array_multisort – Sortieren Sie mehrere Arrays oder mehrdimensionale Arrays

Beschreibung
bool array_multisort ( array $ar1 [, Mixed $arg [, Mixed $... [, Array $... ]]] )
Gibt bei Erfolg TRUE oder bei Fehler FALSE zurück .

array_multisort() kann verwendet werden, um mehrere Arrays gleichzeitig oder mehrdimensionale Arrays nach einer oder mehreren Dimensionen zu sortieren.

Der zugehörige (String-)Schlüsselname bleibt unverändert, aber der numerische Schlüsselname wird neu indiziert.

Das Eingabearray wird als Tabellenspalte behandelt und nach Zeile sortiert – dies ähnelt der Funktionalität der ORDER BY-Klausel von SQL. Das erste Array ist das zu sortierende Hauptarray. Wenn beim Vergleich festgestellt wird, dass die Zeilen (Werte) im Array gleich sind, werden sie nach der Größe des entsprechenden Werts im nächsten Eingabearray usw. sortiert.

Die Parameterstruktur dieser Funktion ist etwas ungewöhnlich, aber sehr flexibel. Der erste Parameter muss ein Array sein. Jedes der folgenden Argumente kann ein Array oder ein unten aufgeführtes Sortierflag sein.

Flag Sortierreihenfolge:

SORT_ASC – Sortierung in aufsteigender Reihenfolge
SORT_DESC – Sortierung in absteigender Reihenfolge

Flag Sortiertyp:

SORT_REGULAR – Sortierung in absteigender Reihenfolge Elemente werden nach der üblichen Methode verglichen
SORT_NUMERIC – Elemente werden nach numerischen Werten verglichen
SORT_STRING – Elemente werden nach Zeichenfolgen verglichen

Zwei ähnliche Sortierflags können danach nicht angegeben werden jedes Array. Die nach jedem Array angegebenen Sortierflags gelten nur für dieses Array – davor gelten die Standardwerte SORT_ASC und SORT_REGULAR.

#1 Mehrere Arrays sortieren

<?php 
$ar1 = array("10", 100, 100, "a"); 
$ar2 = array(1, 3, "2", 1); 
array_multisort($ar1, $ar2); 
var_dump($ar1); 
var_dump($ar2); 
?>
Nach dem Login kopieren
Nach dem Sortieren in diesem Beispiel enthält das erste Array „10“, „a“, 100, 100. Das zweite Array enthält 1,1, „2“, 3. Die Reihenfolge der Elemente im zweiten Array entspricht genau der Reihenfolge der entsprechenden Elemente (100 und 100) im ersten Array.

array(4) { 
[0]=> string(2) "10" 
[1]=> string(1) "a" 
[2]=> int(100) 
[3]=> int(100) 
} 
array(4) { 
[0]=> int(1) 
[1]=> int(1) 
[2]=> string(1) "2" 
[3]=> int(3) 
}
Nach dem Login kopieren
#2 Mehrdimensionale Arrays sortieren

<?php 
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1)); 
array_multisort ($ar[0], SORT_ASC, SORT_STRING, 
$ar[1], SORT_NUMERIC, SORT_DESC); 
?>
Nach dem Login kopieren
Nach dem Sortieren in diesem Beispiel enthält das erste Array 10, 100, 100, „a“ (als Zeichenfolge sortiert). aufsteigend), enthält das zweite Array 1, 3, „2“, 1 (numerisch absteigend sortiert).


#3 Sortieren eines mehrdimensionalen Arrays

<?php 
$ar = array( 
array("10", 11, 100, 100, "a"), 
array( 1, 2, "2", 3, 1) 
); 
array_multisort($ar[0], SORT_ASC, SORT_STRING, 
$ar[1], SORT_NUMERIC, SORT_DESC); 
var_dump($ar); 
?>
Nach dem Login kopieren
In diesem Beispiel wird das erste Array nach dem Sortieren zu „10“, 100, 100, 11, „a“ (behandelt als Zeichenfolgen in aufsteigender Reihenfolge). Das zweite Array enthält 1, 3, „2“, 2, 1 (in absteigender Reihenfolge als Zahlen behandelt).

array(2) { 
[0]=> array(5) { 
[0]=> string(2) "10" 
[1]=> int(100) 
[2]=> int(100) 
[3]=> int(11) 
[4]=> string(1) "a" 
} 
[1]=> array(5) { 
[0]=> int(1) 
[1]=> int(3) 
[2]=> string(1) "2" 
[3]=> int(2) 
[4]=> int(1) 
} 
}
Nach dem Login kopieren

#4 对数据库结果进行排序
本例中 data 数组中的每个单元表示一个表中的一行。这是典型的数据库记录的数据集合。

例子中的数据如下:

volume | edition
-------+--------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7

数据全都存放在名为 data 的数组中。这通常是通过循环从数据库取得的结果,例如 mysql_fetch_assoc()。

$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>
本例中将把 volume 降序排列,把 edition 升序排列。

现在有了包含有行的数组,但是 array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序。

// 取得列的列表
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}

// 将数据根据 volume 降序排列,根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
数据集合现在排好序了,结果如下:

volume | edition
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7


Example #5 不区分大小写字母排序

SORT_STRING 和 SORT_REGULAR 都是区分大小写字母的,大写字母会排在小写字母之前。

要进行不区分大小写的排序,就要按照原数组的小写字母拷贝来排序。

<?php 
$array = array(&#39;Alpha&#39;, &#39;atomic&#39;, &#39;Beta&#39;, &#39;bank&#39;); 
$array_lowercase = array_map(&#39;strtolower&#39;, $array); 

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array); 

print_r($array); 
?>
Nach dem Login kopieren

以上例程会输出:

Array
(
[0] => Alpha
[1] => atomic
[2] => bank
[3] => Beta
)

【译者注】本函数相当有用,为有助于理解,请再看下面这个例子:


Example #6 名次排列

<?php 
$grade = array("score" => array(70, 95, 70.0, 60, "70"), 
"name" => array("Zhang San", "Li Si", "Wang Wu", 
"Zhao Liu", "Liu Qi")); 
array_multisort($grade["score"], SORT_NUMERIC, SORT_DESC, 
// 将分数作为数值,由高到低排序 
$grade["name"], SORT_STRING, SORT_ASC); 
// 将名字作为字符串,由小到大排序 
var_dump($grade); 
?>
Nach dem Login kopieren

以上例程会输出: 

array(2) { 
["score"]=> 
array(5) { 
[0]=> 
int(95) 
[1]=> 
string(2) "70" 
[2]=> 
float(70) 
[3]=> 
int(70) 
[4]=> 
int(60) 

["name"]=> 
array(5) { 
[0]=> 
string(5) "Li Si" 
[1]=> 
string(6) "Liu Qi" 
[2]=> 
string(7) "Wang Wu" 
[3]=> 
string(9) "Zhang San" 
[4]=> 
string(8) "Zhao Liu" 


本例中对包含成绩的数组 $grade 按照分数(score)由高到低进行排序,分数相同的人则按照名字(name)由小到大排序。排序后李四 95 分为第一名,赵六 60 分为第五名没有异议。张三、王五和刘七都是 70 分,他们的名次则由其姓名的字母顺序排列,Liu 在前,Wang 在后而 Zhang 在最后。为了区别,三个 70 分分别用了整数,浮点数和字符串来表示,可以在程序输出中清楚地看到它们排序的结果。

更多PHP array_multisort()函数的使用札记相关文章请关注PHP中文网!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Apr 06, 2025 am 12:02 AM

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Apr 03, 2025 am 12:04 AM

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Mar 31, 2025 pm 11:54 PM

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Wie debugge ich den CLI -Modus in PhpStorm? Wie debugge ich den CLI -Modus in PhpStorm? Apr 01, 2025 pm 02:57 PM

Wie debugge ich den CLI -Modus in PhpStorm? Bei der Entwicklung mit PHPSTORM müssen wir manchmal den PHP im CLI -Modus (COMS -Zeilenschnittstellen) debuggen ...

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

See all articles