Einfache und elegante Handhabung von PHP-Arrays durch Verwendung eines Array-ähnlichen Sammlungsobjekts, wie es von jQuery und Laravel Collections angeboten wird.
Komponist benötigt Ziele/Karte
Unterstützte PHP-Versionen:
PHP 7.1+
PHP 8+
Inhaltsverzeichnis
Warum PHP Map
Liste der Methoden
Erstellen
Zugang
Hinzufügen
Aggregat
Debuggen
Befehl
Verkürzen
Prüfen
Mutieren
Sonstiges
Dokumentation
Benutzerdefinierte Methoden
Leistung
Upgrade-Anleitung
Anstatt:
$list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];$list[ ] = ['id' => 'drei', 'value' => 'value3']; // elementunset( $list[0] ); hinzufügen // Element entfernen$list = array_filter( $list ); // leere Werte entfernensort( $list ); // Elemente sortieren$pairs = array_column( $list, 'value', 'id' ); // create ['drei' => 'value3']$value = reset( $pairs ) ?: null; // ersten Wert zurückgeben
Verwenden Sie ausschließlich:
$list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];$value = map( $list ) // Map erstellen->push( ['id' => 'drei', 'value' => 'value3'] ) // Element hinzufügen->remove( 0 ) // Element entfernen->filter () // entfernen leere Werte->sort() // Elemente sortieren->col( 'value', 'id' ) // create [' three' => 'value3']->first(); // ersten Wert zurückgeben
Sie können weiterhin Folgendes verwenden:
$map[] = ['id' => 'drei', 'value' => 'value3'];$value = $map[0];count( $map );foreach( $map as $key => value );
Rückrufe verwenden:
Außerdem können Sie mit dem Kartenobjekt anonyme Funktionen an viele Methoden übergeben, z. B.:
$map->each( function( $val, $key ) { echo $key . ': ' . $val; } );
jQuery-Stil:
Wenn Ihre Kartenelemente Objekte sind, können Sie deren Methoden für jedes Objekt aufrufen und das Ergebnis wie in jQuery als neue Karte erhalten:
// MyClass implementiert setStatus() (gibt $this zurück) und getCode() (vom Konstruktor initialisiert)$map = Map::from( ['a' => new MyClass( 'x' ), 'b' => new MyClass ( 'y' )] );$map->setStatus( 1 )->getCode()->toArray();
Dadurch wird setStatus( 1 )
für beide Objekte aufgerufen. Wenn setStatus()
-Implementierung $this
zurückgibt, enthält die neue Karte außerdem Folgendes:
['a' => MyClass(), 'b' => MyClass()]
Auf diesen neuen Kartenelementen wird getCode()
aufgerufen, das x
für das erste Objekt und y
für das zweite zurückgibt. Die aus den Ergebnissen von getCode()
erstellte Karte gibt Folgendes zurück:
['a' => 'x', 'b' => 'y']
Funktion Map Funktion is_map __call __callStatic __construct after all arsort arsorted asort asorted at avg before bool call cast chunk clear clone col Collapse Combine Compare Concat enthält Copy Count CountBy dd Delimiter Diff DiffAssoc DiffKeys Duplikate Duplikate jeder leer ist gleich jedem außer Explodieren Filter zuerst finden FirstKey flach umdrehen float von fromJson get getIterator grep groupBy hat if ifAny ifEmpty implementiert im Index insertAfter insertAt insertBefore inString int intersect intersectAssoc intersectKeys ist isEmpty isNumeric isObject isScalar isString join jsonSerialize Keys krsort krsorted ksort last lastKey ltrim map max merge method min none nth offsetExists offsetGet offsetSet offsetUnset only order pad partition Percentage Pipe Pluck Pop Pos Prefix Prepend Pull Push Put Random Reduce Reject rekey entfernen ersetzen umkehren umgedreht rsort rsorted rtrim Suche Sep Set Shift Shuffle Shuffled Skip Slice Irgendeine Sortierung Sortiert Splice Split strAfter strContains strContainsAll strEnds strEndsAll string strLower strReplace strStarts strStartsAll strUpper suffix sum take tap times toArray toJson toReversed toSorted toUrl transform transpose traverse tree trim uasort uasorted uksort uksorted union unique unshift usort usorted Werte Gehen Sie wohin mit Reißverschluss
Funktion map(): Erstellt eine neue Karte aus übergebenen Elementen
__construct() : Erstellt eine neue Karte
clone(): Klont die Karte und alle darin enthaltenen Objekte
copy() : Erstellt eine neue Kopie
explosion(): Teilt einen String in eine Karte von Elementen auf
from() : Erstellt eine neue Karte aus übergebenen Elementen
fromJson() : Erstellt eine neue Karte aus einem JSON-String
times() : Erstellt eine neue Karte durch mehrmaliges Aufrufen des Abschlusses
tree(): Erstellt eine Baumstruktur aus den Listenelementen
__call(): Ruft eine benutzerdefinierte Methode auf
__callStatic() : Ruft eine benutzerdefinierte Methode statisch auf
all(): Gibt das einfache Array zurück
at() : Gibt den Wert an der angegebenen Position zurück
bool(): Gibt ein Element per Schlüssel zurück und wandelt es in einen booleschen Wert um
call(): Ruft die angegebene Methode für alle Elemente auf
find(): Gibt das erste/letzte passende Element zurück
first() : Gibt das erste Element zurück
firstKey() : Gibt den ersten Schlüssel zurück
get(): Gibt ein Element nach Schlüssel zurück
index(): Gibt den numerischen Index des angegebenen Schlüssels zurück
int(): Gibt ein Element per Schlüssel zurück und wandelt es in eine Ganzzahl um
float(): Gibt ein Element per Schlüssel zurück und wandelt es in float um
keys(): Gibt alle Schlüssel zurück
last() : Gibt das letzte Element zurück
lastKey() : Gibt den letzten Schlüssel zurück
pop(): Gibt das letzte Element zurück und entfernt es
pos(): Gibt den numerischen Index des Werts zurück
pull(): Gibt ein Element per Schlüssel zurück und entfernt es
random(): Gibt zufällige Elemente unter Beibehaltung der Schlüssel zurück
search(): Finden Sie den Schlüssel eines Elements
Shift(): Gibt das erste Element zurück und entfernt es
string(): Gibt ein Element per Schlüssel zurück und wandelt es in einen String um
toArray(): Gibt das einfache Array zurück
unique(): Gibt alle eindeutigen Elemente unter Beibehaltung der Schlüssel zurück
Werte(): Gibt alle Elemente mit neuen Schlüsseln zurück
concat(): Fügt alle Elemente mit neuen Schlüsseln hinzu
insertAfter(): Fügt den Wert nach dem angegebenen Element ein
insertAt(): Fügt das Element an der angegebenen Position in der Karte ein
insertBefore(): Fügt den Wert vor dem angegebenen Element ein
merge(): Kombiniert Elemente und überschreibt vorhandene
pad(): Mit dem angegebenen Wert bis zur angegebenen Länge auffüllen
prepend(): Fügt ein Element am Anfang hinzu (Alias)
push(): Fügt am Ende ein Element hinzu
put(): Setzt den angegebenen Schlüssel und Wert in der Karte (Alias)
set(): Überschreibt oder fügt ein Element hinzu
union(): Fügt die Elemente hinzu, ohne vorhandene zu überschreiben
unshift() : Fügt am Anfang ein Element hinzu
with() : Gibt eine Kopie zurück und legt ein Element fest
avg(): Gibt den Durchschnitt aller Werte zurück
count(): Gibt die Gesamtzahl der Elemente zurück
countBy(): Zählt, wie oft die gleichen Werte in der Karte vorkommen
max(): Gibt den Maximalwert aller Elemente zurück
min(): Gibt den Mindestwert aller Elemente zurück
Prozentsatz(): Gibt den Prozentsatz aller Elemente zurück, die den Test bestehen
sum(): Gibt die Summe aller Werte in der Karte zurück
dd() : Druckt den Karteninhalt und beendet das Skript
dump() : Druckt den Karteninhalt
tap(): Übergibt einen Klon der Karte an den angegebenen Rückruf
arsort(): Umgekehrte Sortierung von Elementen unter Beibehaltung der Schlüssel
arsorted(): Sortiert Elemente um, wobei die Schlüssel in einer Kopie der Karte erhalten bleiben
asort(): Elemente unter Beibehaltung der Schlüssel sortieren
asorted(): Elemente unter Beibehaltung der Schlüssel in einer Kopie der Karte sortieren
krsort(): Elemente nach Schlüsseln umkehren
krsorted(): Elemente nach Schlüsseln in einer Kopie der Karte umkehren
ksort(): Elemente nach Schlüsseln sortieren
order(): Ordnet Elemente nach den übergebenen Schlüsseln
reverse() : Kehrt die Array-Reihenfolge um und behält dabei die Schlüssel bei
reversed() : Kehrt die Elementreihenfolge in einer Kopie der Karte um
toReversed(): Kehrt die Reihenfolge der Elemente in einer Kopie der Karte (Alias) um.
rsort(): Elemente mit neuen Schlüsseln umkehren
rsorted(): Elemente mit neuen Schlüsseln in einer Kopie der Karte umkehren
shuffle(): Randomisiert die Reihenfolge der Elemente
shuffled(): Randomisiert die Elementreihenfolge in einer Kopie der Karte
sort(): Sortiert die Elemente direkt und weist neue Schlüssel zu
sorted(): Sortiert die Elemente in einer Kopie der Karte mithilfe neuer Schlüssel
toSorted(): Sortiert die Elemente in einer Kopie der Karte mit neuen Schlüsseln (Alias)
uasort(): Sortiert Elemente unter Beibehaltung der Schlüssel mithilfe eines Rückrufs
uasorted(): Sortiert Elemente unter Beibehaltung der Schlüssel mithilfe eines Rückrufs in einer Kopie der Karte
uksort(): Sortiert Elemente mithilfe eines Rückrufs nach Schlüsseln
uksorted(): Sortiert Elemente nach Schlüsseln mithilfe eines Rückrufs in einer Kopie der Karte
usort(): Sortiert Elemente mithilfe eines Rückrufs und weist neue Schlüssel zu
usorted(): Sortiert Elemente mithilfe eines Rückrufs und weist neue Schlüssel in einer Kopie der Karte zu
after() : Gibt die Elemente nach dem angegebenen zurück
before(): Gibt die Elemente vor dem angegebenen zurück
clear(): Entfernt alle Elemente
diff(): Gibt die in der angegebenen Liste fehlenden Elemente zurück
diffAssoc(): Gibt die in der angegebenen Liste fehlenden Elemente zurück und überprüft die Schlüssel
diffKeys(): Gibt die in der angegebenen Liste fehlenden Elemente nach Schlüsseln zurück
außer(): Gibt eine neue Karte ohne die übergebenen Elementschlüssel zurück
filter(): Wendet einen Filter auf alle Elemente an
grep(): Wendet einen regulären Ausdruck auf alle Elemente an
intersect(): Gibt die gemeinsam genutzten Elemente zurück
intersectAssoc(): Gibt die gemeinsam genutzten Elemente zurück und überprüft die Schlüssel
intersectKeys(): Gibt die von Schlüsseln gemeinsam genutzten Elemente zurück
nth(): Gibt jedes n-te Element der Karte zurück
only(): Gibt nur die durch die Schlüssel angegebenen Elemente zurück
pop(): Gibt das letzte Element zurück und entfernt es
pull(): Gibt ein Element per Schlüssel zurück und entfernt es
„reject()“: Entfernt alle übereinstimmenden Elemente
remove(): Entfernt ein Element per Schlüssel
Shift(): Gibt das erste Element zurück und entfernt es
skip(): Überspringt die angegebene Anzahl von Elementen und gibt den Rest zurück
Slice(): Gibt einen Ausschnitt der Karte zurück
take(): Gibt eine neue Karte mit der angegebenen Anzahl von Elementen zurück
where(): Filtert die Liste der Elemente nach einer bestimmten Bedingung
Funktion is_map(): Testet, ob die Variable ein Kartenobjekt ist
vergleichen(): Vergleicht den Wert mit allen Kartenelementen
enthält(): Testet, ob ein Element in der Karte vorhanden ist
every(): Wendet einen Rückruf auf jedes Element an
empty(): Testet, ob die Karte leer ist
equal(): Testet, ob Karteninhalte gleich sind
every(): Überprüft, ob alle Elemente den Test des angegebenen Rückrufs bestehen
has() : Testet, ob ein Schlüssel existiert
if(): Führt Rückrufe abhängig von der Bedingung aus
ifAny(): Führt Rückrufe aus, wenn die Karte Elemente enthält
ifEmpty(): Führt Rückrufe aus, wenn die Karte leer ist
in(): Testet, ob ein Element enthalten ist
Includes(): Testet, ob ein Element enthalten ist
inString(): Testet, ob das Element Teil der Strings in der Map ist
is(): Testet, ob die Karte aus denselben Schlüsseln und Werten besteht
isEmpty(): Testet, ob die Karte leer ist
isNumeric(): Testet, ob alle Einträge numerische Werte sind
isObject(): Testet, ob alle Einträge Objekte sind
isScalar(): Testet, ob alle Einträge Skalarwerte sind.
isString(): Testet, ob alle Einträge Zeichenfolgenwerte sind.
implementiert(): Testet, ob alle Einträge Objekte sind, die die Schnittstelle implementieren
none(): Testet, ob keines der Elemente Teil der Karte ist
some(): Testet, ob mindestens ein Element enthalten ist
strContains(): Testet, ob mindestens einer der übergebenen Strings Teil von mindestens einem Eintrag ist
strContainsAll(): Testet, ob alle Einträge eine der übergebenen Zeichenfolgen enthalten
strEnds(): Testet, ob mindestens einer der Einträge mit einer der übergebenen Zeichenfolgen endet
strEndsAll(): Testet, ob alle Einträge mit mindestens einer der übergebenen Zeichenfolgen enden
strStarts(): Testet, ob mindestens einer der Einträge mit mindestens einer der übergebenen Zeichenfolgen beginnt
strStartsAll(): Testet, ob alle Einträge mit einer der übergebenen Zeichenfolgen beginnen
cast(): Wandelt alle Einträge in den übergebenen Typ um
chunk() : Teilt die Karte in Blöcke auf
col(): Erstellt eine Schlüssel/Wert-Zuordnung
collapse(): Reduziert mehrdimensionale Elemente, die Elemente überschreiben
kombinieren(): Kombiniert die Kartenelemente als Schlüssel mit den angegebenen Werten
flat(): Reduziert mehrdimensionale Elemente, ohne Elemente zu überschreiben
flip(): Tauscht Schlüssel mit ihren Werten aus
groupBy(): Gruppiert assoziative Array-Elemente oder Objekte
join(): Gibt verkettete Elemente als String mit Trennzeichen zurück
ltrim(): Entfernt die übergebenen Zeichen links von allen Zeichenfolgen
map(): Wendet einen Rückruf auf jedes Element an und gibt die Ergebnisse zurück
partition(): Unterteilt die Liste in die angegebene Anzahl von Gruppen
pipe(): Wendet einen Rückruf auf die gesamte Karte an
pluck(): Erstellt eine Schlüssel/Wert-Zuordnung (Alias)
prefix(): Fügt jedem Karteneintrag ein Präfix hinzu
redu(): Berechnet einen einzelnen Wert aus dem Karteninhalt
rekey(): Ändert die Schlüssel entsprechend der übergebenen Funktion
replace() : Ersetzt Elemente rekursiv
rtrim(): Entfernt die übergebenen Zeichen rechts von allen Zeichenfolgen
splice(): Ersetzt ein Slice durch neue Elemente
strAfter(): Gibt die Zeichenfolgen nach dem übergebenen Wert zurück
strLower(): Wandelt alle alphabetischen Zeichen in Kleinbuchstaben um
strReplace(): Ersetzt alle Vorkommen der Suchzeichenfolge durch die Ersatzzeichenfolge
strUpper(): Wandelt alle alphabetischen Zeichen in Großbuchstaben um
suffix(): Fügt jedem Karteneintrag ein Suffix hinzu
toJson() : Gibt die Elemente im JSON-Format zurück
toUrl(): Erstellt eine HTTP-Abfragezeichenfolge
transfrom(): Wendet auf jedes Element einen Rückruf an, der neue Schlüssel/Wert-Paare erstellt
transpose(): Tauscht Zeilen und Spalten gegen eine zweidimensionale Karte aus
traverse(): Durchläuft Bäume verschachtelter Elemente und übergibt jedes Element an den Rückruf
trim(): Entfernt die übergebenen Zeichen links/rechts aus allen Zeichenfolgen
walk(): Wendet den angegebenen Rückruf auf alle Elemente an
zip(): Führt die Werte aller Arrays am entsprechenden Index zusammen
delimiter(): Legt das Trennzeichen für Pfade zu mehrdimensionalen Arrays fest oder gibt es zurück
getIterator(): Gibt einen Iterator für die Elemente zurück
jsonSerialize(): Gibt die Daten an, die in JSON serialisiert werden sollen
method(): Registriert eine benutzerdefinierte Methode
offsetExists(): Prüft, ob der Schlüssel existiert
offsetGet(): Gibt ein Element nach Schlüssel zurück
offsetSet() : Überschreibt ein Element
offsetUnset(): Entfernt ein Element nach Schlüssel
sep() : Legt das Trennzeichen für Pfade zu mehrdimensionalen Arrays in der aktuellen Karte fest
Testet, ob die Variable ein Kartenobjekt ist
Funktion is_map( $var ): bool
@param gemischte $var
-Variable zum Testen
Beispiele:
is_map( new Map() );// trueis_map( [] );// false
Gibt eine neue Karte für die übergebenen Elemente zurück.
Funktionskarte( $elements = [] ): AimeosMap
@param gemischt $elements
Liste von Elementen oder einzelner Wert
@return AimeosMap Karteninstanz
Beispiele:
// arraymap( [] );// nullmap( null );// scalarmap( 'a' );// objectmap( new stdClass() );// map objectmap( new Map() );// iterable objectmap( new ArrayObject() );// Schließung ausgewertet lazilymap( function() {return []; } );
Siehe auch:
rekey() – Ändert die Schlüssel entsprechend der übergebenen Funktion
transform() – Erstellt mithilfe der übergebenen Funktion neue Schlüssel/Wert-Paare und gibt eine neue Zuordnung für das Ergebnis zurück
Erstellt ein neues Kartenobjekt.
öffentliche Funktion __construct( $elements = [] )
@param gemischt $elements
Einzelnes Element, Liste von Elementen, Kartenobjekt, iterierbare Objekte oder Iteratoren, alles andere
Beispiele:
// arraynew Map( [] );// nullnew Map( null );// scalarnew Map( 'a' );// objectnew Map( new stdClass() );// map objectnew Map( new Map() ); // iterierbares Objektnew Map( new ArrayObject() );// Schließung ausgewertet lazilynew Map( function() {return []; } );
Verarbeitet dynamische Aufrufe benutzerdefinierter Methoden für die Klasse.
öffentliche Funktion __call( string $name, array $params )
@param string $name
Methodenname
@param array<mixed> $params
Liste der Parameter
@return gemischt Ergebnis der aufgerufenen Funktion oder neuen Map mit Ergebnissen der Elementmethoden
Ruft eine benutzerdefinierte Methode auf, die von Map::method() hinzugefügt wurde. Die aufgerufene Methode hat über $this->items
Zugriff auf das interne Array.
Beispiele:
Map::method( 'case', function( $case = CASE_LOWER ) {return new self( array_change_key_case( $this->items, $case ) ); } ); Map::from( ['a' => 'bar'] )->case( CASE_UPPER );// ['A' => 'bar']
Dies ermöglicht auch den Aufruf von Objektmethoden, wenn es sich bei den Elementen um Objekte handelt:
$item = new MyClass(); // mit Methode setStatus() (gibt $this zurück) und getCode() implementiertMap::from( [$item, $item] )->setStatus( 1 )->getCode()->toArray();
Dadurch wird die setStatus()
Methode jedes Elements in der Karte aufgerufen und deren Rückgabewerte verwendet, um eine neue Karte zu erstellen. Auf der neuen Map wird die Methode getCode()
für jedes Element aufgerufen und ihre Rückgabewerte werden ebenfalls in einer neuen Map gespeichert. Diese letzte Karte wird dann zurückgegeben und die Kartenschlüssel der Originalkarte bleiben in der zurückgegebenen Karte erhalten.
Wenn die Elemente keine Objekte sind, werden sie übersprungen und wenn dies auf alle Elemente zutrifft, wird eine leere Karte zurückgegeben. Falls die Karte Objekte gemischter Typen enthält und eines davon die aufgerufene Methode nicht implementiert, wird ein Fehler ausgegeben.
Verarbeitet statische Aufrufe benutzerdefinierter Methoden für die Klasse.
öffentliche statische Funktion __callStatic( string $name, array $params )
@param string $name
Methodenname
@param array<mixed> $params
Liste der Parameter
@return gemischt Ergebnis der aufgerufenen Funktion oder neuen Map mit Ergebnissen der Elementmethoden
@throws BadMethodCallException Wenn für diesen Namen keine Methode registriert wurde
Ruft eine benutzerdefinierte Methode auf, die von Map::method() statisch hinzugefügt wurde. Die aufgerufene Methode hat keinen Zugriff auf das interne Array, da kein Objekt verfügbar ist.
Beispiele:
Map::method( 'foo', function( $arg1, $arg2 ) {} ); Map::foo( $arg1, $arg2 );
Gibt die Elemente nach dem angegebenen zurück.
öffentliche Funktion after( $value ) : self
@param Closure|int|string $value
Wert oder Funktion mit (item, key) Parametern
@return self<int|string,mixed> Neue Map mit den Elementen nach der angegebenen
Mit dieser Methode bleiben die Schlüssel erhalten.
Beispiele:
Map::from( [0 => 'b', 1 => 'a'] )->after( 'b' );// [1 => 'a']Map::from( ['a' = > 1, 'b' => 0] )->after( 1 );// ['b' => 0]Map::from( [0 => 'b', 1 => 'a'] )- >after( 'c' );// []Map::from( ['a', 'c', 'b'] )->after( function( $item, $key ) {return $item >= 'c'; } );// [2 => 'b']
Gibt die Elemente als einfaches Array zurück.
öffentliche Funktion all(): Array
@return- Array Einfaches Array
Beispiele:
Map::from( ['a'] )->all();// ['a']
Sortiert alle Elemente in umgekehrter Reihenfolge und behält die Schlüsselzuordnung bei.
öffentliche Funktion arsort( int $options = SORT_REGULAR ): self
@param int $options
Sortieroptionen für arsort()
@return self<int|string,mixed> Aktualisierte Karte für die Fluidschnittstelle
Bei dieser Methode bleiben die Schlüssel erhalten und es wird keine neue Karte erstellt.
Der Parameter $options
ändert, wie die Werte verglichen werden. Mögliche Parameterwerte sind:
SORT_REGULAR: Elemente normal vergleichen (Typen nicht ändern)
SORT_NUMERIC: Elemente numerisch vergleichen
SORT_STRING: Elemente als Zeichenfolgen vergleichen
SORT_LOCALE_STRING: Elemente als Zeichenfolgen vergleichen, basierend auf dem aktuellen Gebietsschema oder geändert durch setlocale()
SORT_NATURAL: Vergleichen Sie Elemente als Zeichenfolgen mit „natürlicher Reihenfolge“ wie natsort()
SORT_FLAG_CASE: Verwenden Sie SORT_STRING|SORT_FLAG_CASE und SORT_NATURAL|SORT_FLAG_CASE, um Zeichenfolgen ohne Berücksichtigung der Groß- und Kleinschreibung zu sortieren
Beispiele:
Map::from( ['b' => 0, 'a' => 1] )->arsort();// ['a' => 1, 'b' => 0]Map::from( [ 'a', 'b'] )->arsort();// ['b', 'a']Map::from( [0 => 'C', 1 => 'b'] )->arsort ();// [1 => 'b', 0 => 'C']Map::from( [0 => 'C', 1 => 'b'] )->arsort( SORT_STRING|SORT_FLAG_CASE );// [0 => ' C', 1 => 'b'] weil 'C' -> 'c' und 'c' > 'b'
Sortiert eine Kopie aller Elemente in umgekehrter Reihenfolge und behält die Schlüsselzuordnung bei.
öffentliche Funktion arsorted( int $options = SORT_REGULAR ) : self
@param int $options
Sortieroptionen für arsort()
@return self<int|string,mixed> Aktualisierte Karte für die Fluidschnittstelle
Mit dieser Methode bleiben die Schlüssel erhalten und es wird eine neue Karte erstellt.
Der Parameter $options
ändert, wie die Werte verglichen werden. Mögliche Parameterwerte sind:
SORT_REGULAR: Elemente normal vergleichen (Typen nicht ändern)
SORT_NUMERIC: Elemente numerisch vergleichen
SORT_STRING: Elemente als Zeichenfolgen vergleichen
SORT_LOCALE_STRING: Elemente als Zeichenfolgen vergleichen, basierend auf dem aktuellen Gebietsschema oder geändert durch setlocale()
SORT_NATURAL: Vergleichen Sie Elemente als Zeichenfolgen mit „natürlicher Reihenfolge“ wie natsort()
SORT_FLAG_CASE: Verwenden Sie SORT_STRING|SORT_FLAG_CASE und SORT_NATURAL|SORT_FLAG_CASE, um Zeichenfolgen ohne Berücksichtigung der Groß- und Kleinschreibung zu sortieren
Beispiele:
Map::from( ['b' => 0, 'a' => 1] )->arsorted();// ['a' => 1, 'b' => 0]Map::from( [ 'a', 'b'] )->arsorted();// ['b', 'a']Map::from( [0 => 'C', 1 => 'b'] )->arsorted();// [1 => 'b', 0 => 'C']Map::from( [0 => 'C', 1 => 'b'] )->arsorted( SORT_STRING |SORT_FLAG_CASE );// [0 => 'C', 1 => 'b'] weil 'C' -> 'c' und 'c' > 'b'
Sortiert alle Elemente und behält die Schlüsselzuordnung bei.
öffentliche Funktion asort( int $options = SORT_REGULAR ): self
@param int $options
Sortieroptionen für asort()
@return self<int|string,mixed> Aktualisierte Karte für die Fluidschnittstelle
Bei dieser Methode bleiben die Schlüssel erhalten und es wird keine neue Karte erstellt.
Der Parameter ändert, wie die Werte verglichen werden. Mögliche Parameterwerte sind:
SORT_REGULAR: Elemente normal vergleichen (Typen nicht ändern)
SORT_NUMERIC: Elemente numerisch vergleichen
SORT_STRING: Elemente als Zeichenfolgen vergleichen
SORT_LOCALE_STRING: Elemente als Zeichenfolgen vergleichen, basierend auf dem aktuellen Gebietsschema oder geändert durch setlocale()
SORT_NATURAL: Vergleichen Sie Elemente als Zeichenfolgen mit „natürlicher Reihenfolge“ wie natsort()
SORT_FLAG_CASE: Verwenden Sie SORT_STRING|SORT_FLAG_CASE und SORT_NATURAL|SORT_FLAG_CASE, um Zeichenfolgen ohne Berücksichtigung der Groß- und Kleinschreibung zu sortieren
Beispiele:
Map::from( ['a' => 1, 'b' => 0] )->asort();// ['b' => 0, 'a' => 1]Map::from( [ 0 => 'b', 1 => 'a'] )->asort();// [1 => 'a', 0 => 'b']Map::from( [0 => 'C' , 1 => 'b'] )->asort();// [0 => 'C', 1 => 'b'] weil 'C' < 'b'Map::from( [0 => 'C', 1 => 'b'] )->arsort( SORT_STRING|SORT_FLAG_CASE );// [1 => 'b', 0 => 'C'] weil 'C' -> 'c' und 'c' > 'b'
Sortiert eine Kopie aller Elemente und behält die Schlüsselzuordnung bei.
öffentliche Funktion asorted( int $options = SORT_REGULAR ): self
@param int $options
Sortieroptionen für asort()
@return self<int|string,mixed> Aktualisierte Karte für die Fluidschnittstelle
Mit dieser Methode bleiben die Schlüssel erhalten und es wird eine neue Karte erstellt.
Der Parameter ändert, wie die Werte verglichen werden. Mögliche Parameterwerte sind:
SORT_REGULAR: Elemente normal vergleichen (Typen nicht ändern)
SORT_NUMERIC: Elemente numerisch vergleichen
SORT_STRING: Elemente als Zeichenfolgen vergleichen
SORT_LOCALE_STRING: Elemente als Zeichenfolgen vergleichen, basierend auf dem aktuellen Gebietsschema oder geändert durch setlocale()
SORT_NATURAL: Vergleichen Sie Elemente als Zeichenfolgen mit „natürlicher Reihenfolge“ wie natsort()
SORT_FLAG_CASE: Verwenden Sie SORT_STRING|SORT_FLAG_CASE und SORT_NATURAL|SORT_FLAG_CASE, um Zeichenfolgen ohne Berücksichtigung der Groß- und Kleinschreibung zu sortieren
Beispiele:
Map::from( ['a' => 1, 'b' => 0] )->asorted();// ['b' => 0, 'a' => 1]Map::from( [ 0 => 'b', 1 => 'a'] )->asorted();// [1 => 'a', 0 => 'b']Map::from( [0 => 'C' , 1 => 'b'] )->asorted();// [0 => 'C', 1 => 'b'] weil 'C' < 'b'Map::from( [0 => 'C', 1 => 'b'] )->asorted( SORT_STRING|SORT_FLAG_CASE );// [1 => 'b', 0 => 'C'] weil 'C' -> 'c' und 'c' > 'B'
Gibt den Wert an der angegebenen Position zurück.
öffentliche Funktion at( int $pos )
@param int $pos
Position des Werts in der Karte
@return gemischt�null Wert an der angegebenen Position oder NULL, wenn kein Wert verfügbar ist
Die Position beginnt bei Null und eine Position von „0“ gibt das erste Element der Karte zurück, „1“ das zweite und so weiter. Wenn die Position negativ ist, beginnt die Sequenz am Ende der Karte.
Beispiele:
Map::from( [1, 3, 5] )->at( 0 );// 1Map::from( [1, 3, 5] )->at( 1 );// 3Map::from( [ 1, 3, 5] )->at( -1 );// 5Map::from( [1, 3, 5] )->at( 3 );// NULL
Gibt den Durchschnitt aller Ganzzahl- und Gleitkommawerte in der Karte zurück.
öffentliche Funktion avg( $col = null ): float
@param Abschluss|string|null $col
Abschluss, Schlüssel oder Pfad zu den Werten im verschachtelten Array oder Objekt, für die der Durchschnitt berechnet werden soll
@return float Durchschnitt aller Elemente oder 0, wenn keine Elemente in der Karte vorhanden sind
NULL-Werte werden als 0 behandelt, nicht numerische Werte erzeugen einen Fehler.
Dies funktioniert auch für mehrdimensionale Arrays, indem die Schlüssel der Arrays durch das Trennzeichen (standardmäßig „/“) getrennt übergeben werden, z. B. „key1/key2/key3“, um „val“ von ['key1' => ['key2' => ['key3' => 'val']]]
zu erhalten. ['key1' => ['key2' => ['key3' => 'val']]]
. Das Gleiche gilt für öffentliche Eigenschaften von Objekten oder Objekten, die die Methoden __isset()
und __get()
implementieren.
Beispiele:
Map::from( [1, 3, 5] )->avg();// 3Map::from( [1, null, 5] )->avg();// 3Map::from( [1, 'sum', 5] )->avg();// 2Map::from( [['p' => 30], ['p' => 50], ['p' => 10]] )->avg( 'p' );// 30Map::from( [['i' => ['p' => 30]], ['<sp