PHP-Array zur Sammlung

WBOY
Freigeben: 2023-05-19 15:26:38
Original
592 Leute haben es durchsucht

In PHP sind Arrays und Mengen sehr häufige Datenstrukturen. Ein Array ist eine geordnete Sammlung, die verschiedene Datentypen wie Zahlen, Zeichenfolgen und Objekte enthalten kann. Eine Menge ist abstrakter und stellt eine Sammlung von Elementen dar, wobei jedes Element einzigartig ist und keine bestimmte Reihenfolge oder Index hat.

In der tatsächlichen Entwicklung müssen wir häufig ein Array in einen Satz umwandeln, um effizientere Suchvorgänge und Vorgänge zu ermöglichen. In PHP ist es sehr einfach, diese Konvertierung zu implementieren. In diesem Artikel werden die Implementierungsmethoden und -techniken vorgestellt.

1. Verwenden Sie die Funktion array_unique.

In PHP gibt es eine integrierte Funktion array_unique, mit der doppelte Elemente aus einem Array entfernt werden können. Die grundlegende Syntax dieser Funktion lautet wie folgt:

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
Nach dem Login kopieren

Unter diesen stellt $array das Array dar, das dedupliziert werden muss, $sort_flags stellt die optionale Sortiermethode dar, die gebräuchlichsten sind SORT_STRING (sortiert nach Zeichenfolge) und SORT_NUMERIC (sortiert nach). Zahl) und SORT_REGULAR (nach natürlicher Reihenfolge sortieren) usw.

Wenn Sie ein Array an die Funktion array_unique übergeben, wird ein neues Array mit eindeutigen Elementen zurückgegeben. Zum Beispiel:

$arr = array(1,2,2,3,3,3);
$set = array_unique($arr);
print_r($set); // 输出 Array ( [0] => 1 [1] => 2 [3] => 3 )
Nach dem Login kopieren

Es ist ersichtlich, dass mit der Funktion array_unique ein Array problemlos in eine Menge umgewandelt werden kann.

2. Verwenden Sie die Funktion array_flip

Zusätzlich zur Verwendung der Funktion array_unique gibt es eine weitere einfache Möglichkeit, ein Array in eine Sammlung umzuwandeln, nämlich die Funktion array_flip. Mit dieser Funktion werden die Schlüssel und Werte im Array ausgetauscht, dh die Werte im Array werden als Schlüssel des neuen Arrays verwendet und die ursprünglichen Schlüssel werden ignoriert. Die grundlegende Syntax der Funktion lautet wie folgt:

array array_flip ( array $array )
Nach dem Login kopieren

Unter diesen stellt $array das Array dar, dessen Schlüssel und Werte ausgetauscht werden müssen. Wenn Sie ein Array an die Funktion array_flip übergeben, wird ein neues Array mit den Werten im ursprünglichen Array als Schlüssel und allen Werten im neuen Array zurückgegeben. Zum Beispiel:

$arr = array('a', 'b', 'c');
$set = array_flip($arr);
print_r($set); // 输出 Array ( [a] => 0 [b] => 1 [c] => 2 )
Nach dem Login kopieren

Da die Elemente in der Menge eindeutig sein müssen, können wir die Werte im neuen Array ignorieren und nur seine Schlüssel behalten, das heißt:

$arr = array('a', 'b', 'c');
$set = array_flip($arr);
$set = array_keys($set);
print_r($set); // 输出 Array ( [0] => a [1] => b [2] => c )
Nach dem Login kopieren

Auf diese Weise erhalten wir eine Menge, die alle enthält Elemente im ursprünglichen Array.

3. Verwenden Sie die Funktion array_reduce.

Eine weitere gängige Methode ist die Verwendung der Funktion array_reduce. Diese Funktion wird verwendet, um alle Elemente im Array iterativ zu berechnen und ein Endergebnis zurückzugeben. Die grundlegende Syntax der Funktion lautet wie folgt:

mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
Nach dem Login kopieren

Darunter stellt $array das Array dar, das iterativ berechnet werden muss, $callback ist eine Rückruffunktion zur Berechnung der Elemente im Array und $initial ist ein optionaler Anfangswert , wird verwendet, um den Iterationsanfangszustand des Prozesses anzugeben. Die grundlegende Syntax der Rückruffunktion lautet wie folgt:

mixed function callback ( mixed $carry , mixed $item )
Nach dem Login kopieren

Unter diesen repräsentiert $carry das Ergebnis der vorherigen Iteration und $item das Element der aktuellen Iteration. Die Rückruffunktion generiert ein neues Berechnungsergebnis basierend auf dem letzten Berechnungsergebnis und dem aktuellen Element und gibt es für die nächste Iteration an die Funktion array_reduce zurück.

Um ein Array in eine Sammlung umzuwandeln, müssen wir die Technik der Deduplizierung in der Callback-Funktion verwenden. Insbesondere können wir die Array-Referenztechnik in PHP verwenden, um den Wert als Schlüssel in der Sammlung zu verwenden und den Wert selbst auf 1 zu setzen, um sicherzustellen, dass der jedem Schlüssel entsprechende Wert 1 ist, wodurch sichergestellt wird, dass die Elemente in der Sammlung eindeutig sind . Der Code lautet wie folgt:

$arr = array(1,2,2,3,3,3);
$set = array_reduce($arr, function(&$res, $cur){
    $res[$cur] = 1;
    return $res;
}, array());
print_r(array_keys($set)); // 输出 Array ( [0] => 1 [1] => 2 [2] => 3 )
Nach dem Login kopieren

Durch die Verarbeitung der obigen Rückruffunktion haben wir das ursprüngliche Array erfolgreich in eine Sammlung konvertiert. Natürlich können wir in der Rückruffunktion auch andere satzspezifische Operationen verwenden, wie z. B. Schnittmenge, Vereinigung, Differenz usw.

Zusammenfassung

Das Konvertieren eines Arrays in eine Sammlung kommt in der tatsächlichen Entwicklung häufig vor. PHP bietet mehrere Möglichkeiten, diese Konvertierung durchzuführen, einschließlich der Verwendung der integrierten Funktionen array_unique, array_flip und array_reduce, die jeweils ihre eigenen Vor- und Nachteile haben. In tatsächlichen Szenarien können Entwickler je nach Situation unterschiedliche Methoden auswählen, um die Effizienz und Lesbarkeit des Codes sicherzustellen.

Das obige ist der detaillierte Inhalt vonPHP-Array zur Sammlung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage