Macht PHP 5.x irgendeine Art von HashSet oder Set-Klasse?
Bin ich auf Java, wo ich HashSets
, ArrayLists
und andere Collections
. Aber ich bin workting auf ein PHP-Projekt jetzt.
Ich brauche ein set anlegen, füllen diesen Satz mit Objekten (Zeichenketten, in diesem Fall), aber das Set kann nur enthalten, jedes Objekt einmal. Außerdem will ich löschen eines bestimmten Objektes in das Ende von diesem Satz, wenn es vorhanden ist. Das wäre ziemlich einfach, mit Java-collection-Klassen. Aber wie kann ich das umsetzen, dass in PHP?
Gibt es Methoden, die von array()
dass ich vermisst werde? Ich bin mit PHP 5.3.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der PHP-Dokumentation sagt:
Also maybee(!) Sie brauchen nicht ein HashSet, weil ein normales array implementiert ist, bereits als eine Art eines optimierten index-Struktur 🙂
Wenn es nur strings, arrays können als sets
Nur potenzielle problem ist, dass numerische strings sind implizit in Ganzzahlen konvertiert, falls möglich. Aber das ist normalerweise nicht ein problem in PHP, weil der Typ spielt keine Rolle, in den meisten Fällen.
Ich bin mir nicht ganz sicher, aber ich denke
SplObjectStorage
tut, was Sie wollen:http://php.net/manual/en/class.splobjectstorage.php
Oh, und strings sind Objekte. So können Sie genau dies tun:
und das array wird Arbeit als eine Möglichkeit zur eindeutigen speichern Sie die Zeichenfolgen.
Prints:
1 3 6 4 7