
Eine PHP Functional Utility Library, Port von JavaScript Lodash/FP und RAMDA -Bibliotheken an PHP.
Alle Funktionen sind nebenwirkungsfrei und automatisch canriert . Die Daten sind unveränderlich .
Der iterbare Sammelparameter wird normalerweise zuletzt geliefert, um das Currying bequem zu machen.
Eine faule / verzögerte Bewertung wird in funktionellen Pipelines unterstützt.
Weitere Informationen, Dokumentationen und Beispiele finden Sie unter https://idlephp.tech .
PHP 7.4 oder höher
composer require miroshnikov/idles
Notiz
Idles steht derzeit in aktiver Entwicklung. Roadmap soll alle Methoden aus Lodash- und Ramda -Bibliotheken und einigen funktionalen Tools hinzufügen.
concat(?iterable $ array, $ value ): iterable Verkettiert $array mit zusätzlichen iterablen/Werten
count(callable $ predicate , ?iterable $ collection ): int Zählt die Anzahl der Artikel in $collection die dem $predicate entspricht
countBy(callable $ iteratee , ?iterable $ collection ): array Gibt ein Array zurück: [ $iteratee($value) => Anzahl der $iteratee($value) wurde in $collection gefunden]
drop(int $ n , ?iterable $ collection ): iterable Überspringt die ersten $n Elemens und gibt den Rest der Iterablen zurück
dropRight(int $ n , ?iterable $ collection ): iterable Überspringt die letzten $n Elemente
findIndex(callable $ predicate , ?iterable $ collection ): int Wie find aber gibt der Index des ersten Element -Prädikats zurück, gibt die Wahrheit für -1 zurück, wenn nicht gefunden wird
findLastIndex(callable $ predicate , ?iterable $ collection ): int Wie find aber zurückgibt den Index des letzten Element -Prädikats zurück, für -1 , wenn nicht gefunden wird
flatten(?iterable $ collection ): iterableFlach iterable eine einzelne Ebene tief.
flattenDeep(?iterable $ collection ): iterableRekursiv iterable flachbar.
flattenDepth(int $ depth , ?iterable $ collection ): iterableRekursives Array rekursiv bis in die Tiefenzeiten.
fromPairs(?iterable $ collection ): array Erstellt einen neuen Datensatz aus einem Listenschlüsselwertepaar. Die Umkehrung der toPairs .
head(?iterable $ collecton )Bekommt das erste Element iterable
indexOf( $ value , ?iterable $ collection ): int Gibt den Index des ersten Ereignisses von $value in $collection zurück, sonst -1.
intersection(?iterable $ record1 , ?iterable $ record2 ): arrayGibt eindeutige Werte zurück, die in beiden Datensätzen enthalten sind
intersectionBy(callable $ iteratee , ?iterable $ record1 , ?iterable $ record2 ): array Wie intersection , aber ruft $iteratee für jedes Element vor dem Vergleich auf.
intersectionWith(callable $ comparator , ?iterable $ record1 , ?iterable $ record2 ): array Wie intersection , aber $comparator mit dem Vergleich von Elementen.
join(string $ separator , ?iterable $ collection ): string Verbindet iterable Elemente, die durch $separator getrennt sind
last(?iterable $ collecton )Bekommt das letzte Element iterable
nth (int $ offset , ?iterable $ collection ) Gibt das $offset -Element zurück. Wenn $offset negativ ist, wird das Element bei der Indexlänge + $offset zurückgegeben.
remove(int $ start , int $ count , ?iterable $ iterable ): array Entfernt Artikel von $iterable ab $start und enthält $count -Elemente.
slice(int $ start , int ? $ end , ?iterable $ collection ): iterable Wiederholt ein Stück $iterable von $start bis, aber nicht einschließlich, $end .
take(int $ n , ?iterable $ collection ): iterableNimmt n erste Elemente von iterable
takeRight(int $ n , ?iterable $ collection ): arrayGibt ein Stück iterierbar mit N -Elementen zurück, die vom Ende genommen wurden.
uniq(?iterable $ collection ): array Entfernt Duplikate mit ===
uniqBy(callable $ iteratee , ?iterable $ collection ): array Wie uniq , aber $iteratee faust anwenden
uniqWith(callable $ predicate , ?iterable $ collection ): array Wie uniq verwendet aber $predicate um Elemente zu vergleichen
without(array $ values , ?iterable $ collection ): iterable Gibt $iterable ohne $values zurück
zip (iterable $ a , iterable $ b ): iterableErstellt eine iterable gruppierte Elemente, von denen die ersten die ersten Elemente der gegebenen Iterables enthält, von denen die zweite die zweiten Elemente enthält, und so weiter.
zipWith (callable $ iteratee , iterable $ a , iterable $ b ): iterable Wie zip , außer dass es $iteratee akzeptiert, um anzugeben, wie gruppierte Werte kombiniert werden sollten.
all(?callable $ predicate , ?iterable $ collection ): bool Überprüft, ob $predicate truthy für alle Elemente der $collection zurücksetzt. Stoppen Sie, sobald es falsey zurückgibt
any(callable $ predicate , ?iterable $ collection ): bool Überprüft, ob $predicate die Wahrheit für ein Element von $collection zurücksetzt. Stopps auf den ersten gefunden.
each(callable $ iteratee , ?iterable $ collection ): iterable Iteriert über Elemente von $collection . Iteratee kann die Iteration frühzeitig beenden, indem er false zurückgibt.
filter(callable $ predicate , ?iterable $ collection ): iterable Gibt Elemente zurück $predicate Returns Truthy für.
find(?callable $ predicate , ?iterable $ collection ) Gibt das erste Element zurück, $predicate zurückgibt.
flatMap(callable $ iteratee , ?iterable $ collection ): iterableKarten dann flach
flatMapDeep(callable $ iteratee , ?iterable $ collection ): iterable Wie flatMap , aber rekursiv die Ergebnisse.
flatMapDepth(callable $ iteratee , int $ depth , ?iterable $ collection ): iterable Wie flatMap , aber flacht die zugeordneten Ergebnisse bis zu $depth aus
groupBy(callable $ iteratee , ?iterable $ collection ): array Erstellt ein Array, das aus Tasten besteht, die aus dem Ausführen jedes Wertes über $iteratee generiert werden.
includes( $ value , ?iterable $ collection ): bool Schecks, wenn $value in $collection ist.
indexBy(callable $ iteratee , ?iterable $ collection ): iterable Erstellt einen Datensatz, der aus Tasten besteht, die aus den Ergebnissen des Ausführens jedes Elements von $collection über $iteratee erzeugt werden.
map (callable $ iteratee , ?iterable $ collection ) Führen Sie jedes Element in $collection über $iteratee aus.
orderBy (array $ iteratees , array $ orders , ?iterable $ collection ) Wie sortBy aber ermöglicht die Angabe der Sortieraufträge
partition(callable $ predicate , ?iterable $ collection ): array Split $collection in zwei Gruppen, von denen die ersten Elemente enthält $predicate Returns Truthy für die zweite, von denen Elemente $predicate Returns Falsey enthält.
reduce (callable $ iteratee , $ accumulator , ?iterable $ collection ) $iteratee $collection auf einen Wert
resolve (array $ resolvers , array $ record ): array Fügt mit $resolvers neue Immobilien zu $record hinzu.
sort(array $ comparator , ?iterable $ collection ): array Sortiert $collection mit $comparator Vergleich ( $a <=> $b ) Funktion
sortBy(array $ comparators , ?iterable $ collection ): array Sortiert $collection in aufsteigender Reihenfolge nach $comparators .
sortWith(array $ comparators , ?iterable $ collection ): array Sortiert eine $collection nach einer Reihe von Vergleichsfunktionen ( $a <=> $b )
values(?iterable $ collection ): iterable Gibt eine indizierte Werte in $collection zurück.
always ( $ value )Gibt eine Funktion zurück, die den angegebenen Wert immer zurückgibt.
applyTo ( $ value , callable $ interceptor ) Gibt $interceptor($value) zurück.
ary (int $ n , callable $ fn ): callable Erstellt eine Funktion, die $fn mit bis zu $n Argumenten aufruft und zusätzliche Argumente ignoriert.
ascend (callable $ func , $ a , $ b ): callable Macht eine aufsteigende Komparatorfunktion aus einer Funktion heraus, die einen Wert zurückgibt, der mit <=> verglichen werden kann
attempt (callable $ fn ) Ruft $fn an und gibt entweder das Ergebnis oder die gefangene Ausnahme zurück.
compose (callable . . . $ funcs ): callable Wie pipe ruft aber die Funktionen von rechts nach links an.
curry (callable $ f ): callable Idles_ const kann als Platzhalter verwendet werden.
curryRight (callable $ f ): callable Wie curry , aber Argumente werden vorbereitet.
descend (callable $ func , $ a , $ b ): callable Macht eine absteigende Komparatorfunktion aus einer Funktion heraus, die einen Wert zurückgibt, der mit <=> verglichen werden kann
flip (callable $ fn ): callableGibt eine neue Curry -Funktion mit den ersten beiden Argumenten zurück, die umgekehrt sind
juxt (array $ funcs ): callableWendet eine Liste von Funktionen auf eine Liste von Werten an.
memoize (callable $ func ): callable Erstellt eine Funktion, die das Ergebnis von $func merkt. $resolver gibt die Karten -Cache -Taste zurück, args [0] standardmäßig.
negate (callable $ predicate ): callable Erstellt eine Funktion, die das Ergebnis der $predicate -Prädikatfunktion negiert.
once (callable $ fn ): callable $fn wird nur einmal aufgerufen, der erste Wert wird in nachfolgenden Aufrufe zurückgegeben.
partial (callable $ fn , array $ partials ): callable Erstellt eine Funktion, die $fn mit $partials aufruft, die auf die Argumente vorbereitet werden. Idles_ const kann als Platzhalter verwendet werden.
partialRight (callable $ fn , array $ partials ): callable Wie partial aber $partials werden angehängt.
pipe (callable . . . $ funcs ): callableLinks-rechts-Funktionszusammensetzung. Das erste Argument kann irgendeine Arität haben; Die verbleibenden Argumente müssen unärger sein.
tap (callable $ interceptor , $ value ) Ruft $interceptor($value) auf und gibt dann den ursprünglichen $value zurück
times (callable $ iteratee , int $ n ): array Ruft die ITeratee $n -mal auf und gibt ein Array der Ergebnisse jeder Aufruf zurück.
tryCatch (callable $ tryer , callable $ catcher , $ value ) Rufen Sie $tryer an, wenn es wirkt, $catcher anruft
unary (callable $ fn ): callable ary(1, $fn)
allPass (array $ predicates ): callable Gibt eine Funktion zurück, die überprüft, ob ihre Argumente alle $predicates bestehen.
anyPass (array $ predicates ): callable Gibt eine Funktion zurück, die überprüft, ob seine Argumente eines der $predicates passieren.
both (callable $ func1 , callable $ func2 ): callable Die resultierende Funktion gibt $func1(...$args) zurück, wenn es sich um falsy oder $func2(...$args) handelt, sonst kurzüberschreitend
cond (array $ pairs ): callable Iteriert über $pairs und ruft die entsprechende Funktion des ersten Prädikats auf, um die Wahrheit zurückzugeben.
defaultTo ( $ default )( $ value ) Gibt $value ? $default
either (callable $ func1 , callable $ func2 ): callable Die resultierende Funktion gibt $func1(...$args) zurück, wenn es sich um wahrheitsgemäß oder $func2(...$args) handelt.
ifElse (callable $ predicate , callable $ onTrue , callable $ onFalse ): callable Die resultierende Funktion gibt $onTrue(...$args) zurück, wenn $predicate(...$args) wahrheitsgemäß oder $onFalse(...$args) ist, sonst.
not ( $ a ): bool kehrt zurück !$a
unless (callable $ predicate , callable $ whenFalse , mixed $ value ) Gibt $predicate($value) ? $value : $whenFalse($value)
when (callable $ predicate , callable $ whenTrue , mixed $ value ) Gibt $predicate($value) ? $whenTrue($value) : $value
add (int|float $ a , int|float $ b ): int|float$ A + $ b
dec (int $ number ): intGibt $ Nummer - 1 zurück
divide (int|float $ a , int|float $ b ): int|float$ a / $ b
gt ( $ a , $ b ): bool$ a> $ b
gte ( $ a , $ b ): bool$ a> = $ b
inc (int $ number ): intGibt $ Number + 1 zurück
lt ( $ a , $ b ): bool$ a <$ b
lte ( $ a , $ b ): bool$ a <= $ b
modulo (int|float $ a , int|float $ b ): int$ a % $ b
multiply (int|float $ a , int|float $ b ): int|float$ a * $ b
round (int $ precision , int|float $ number ): float Runden $number auf angegeben $precision
subtract (int|float $ a , int|float $ b ): int|float$ a - $ b
sum(?iterable $ collection ): int|floatFasst Elemente in iterierbar
sumBy(?callable $ iteratee , ?iterable $ collection ): int|float Wie sum , aber $iteratee wird für jedes Element in iterierbar aufgerufen, um den zu summierten Wert zu generieren.
assignDeep (array $ iterables ): arrayMerges Eigenschaften rekursiv, numerische Schlüssel werden überschrieben.
defaults(?iterable $ record1 , ?iterable $ record2 ): arrayMerges Eigenschaften von rechts nach links, numerische Schlüssel werden überschrieben.
evolve(array $ transformations , ?iterable $ record ): array Erstellt einen neuen Datensatz, indem es rekursiv Transformationsfunktionen mit $record -Eigenschaften aufruft.
extend(?iterable $ source1 , ?iterable $ source2 ): arrayMerges Eigenschaften, numerische Schlüssel werden überschrieben.
has(string|int $ key , ?iterable $ record ): bool Schecks, wenn $record $key enthält
hasPath(string|int|array $ path , ?iterable $ record ): bool Schecks, wenn $path in $record existiert
invert(?iterable $ collection ): arrayErsetzt Tasten durch Werte. Duplizierte Schlüssel werden überschrieben.
keys(?iterable $ record ): iterable Gibt eine indizierte Iterable von Schlüssel in $record zurück.
merge(?iterable $ source1 , ?iterable $ source2 ): arrayMerges Eigenschaften, numerische Schlüssel werden angehängt.
mergeDeep (array $ iterables ): arrayMerges Eigenschaften rekursiv, werden numerische Schlüssel angehängt.
mergeLeft(?iterable $ left , ?iterable $ right ): array Anrufe merge($right, $left)
mergeWith(callable $ customizer , ?iterable $ left , ?iterable $ right ): array Wie merge aber wenn in beiden Datensätzen ein Schlüssel vorhanden ist, wird $customizer zu den mit dem Schlüssel zugeordneten Werten aufgerufen
modifyPath (array|string|int $ path , callable $ updater , ?iterable $ record ) Erstellt einen neuen Datensatz, indem eine $updater -Funktion auf den Wert am angegebenen $path angewendet wird.
objOf (string $ key , $ value ): array Erstellt ein array mit einem einzelnen Schlüssel => Wertpaar.
omit(array $ keys , ?iterable $ collection ): iterable Das Gegenteil von pick . Gibt den Rekord ohne $keys zurück.
omitBy(callable $ predicate , ?iterable $ record ): iterable Das Gegenteil von pickBy . Gibt Eigenschaften von $record zurück, für die $predicate Falsey zurückgibt.
path (array|string $ path , ?iterable $ collection )Rufen Sie den Wert auf einem bestimmten Pfad ab.
paths(array $ paths , ?iterable $ collection ): arraySchlüsseln, Werte aus. Bestellung bleibt erhalten.
pick(array $ keys , ?iterable $ collection ): iterable Gibt den Datensatz mit nur $keys zurück
pickBy(callable $ predicate , ?iterable $ record ): iterable Rücksendungen, die nur Schlüsseln $predicate enthält, Returns Truthy für.
pluck (string|int $ key , ?iterable $ collection )Gibt ein neues Array zurück, indem Sie dieselbe benannte Eigenschaft alle Datensätze im angegebenen Array auszupfen.
prop (string|int $ key , ?iterable $ record )Geben Sie die angegebene Eigenschaft zurück.
propEq(string|int $ key , $ value , ?iterable $ record ): boolGibt $ rekord [$ key] == $ value zurück
setPath ( $ path , $ value , ?iterable $ record ) Return Copy $record mit $path mit $value festgelegt
toPairs(?iterable $ record ): iterable Konvertiert einen Datensatz in eine Reihe von [$key, $value]
where(array $ spec , ?iterable $ record ): bool Schecks, wenn $record die Spezifikation erfüllt, indem Sie die $spec -Eigenschaften mit den entsprechenden Eigenschaften von $record aufrufen.
whereAny(array $ spec , ?iterable $ record ): bool Schecks, wenn $record die Spezifikation erfüllt, indem Sie die $spec -Eigenschaften mit den entsprechenden Eigenschaften von $record aufrufen. Gibt true zurück, wenn mindestens eines der Prädikate true zurückgibt.
whereEq(array $ spec , ?iterable $ test ): bool Überprüfen Sie, ob der $test die $spec erfüllt
escape (string $ s ): stringKonvertiert die Charaktere "&", "<", ">", "" und "'" in ihre entsprechenden HTML -Entitäten.
escapeRegExp (string $ regexp ): stringEntkommt regulären Ausdruck
split (string $ separator , string $ s ): array Spaltschnur durch $separator .
startsWith (string $ target , string $ s ): bool Wenn String mit $target beginnt.
toLower (string $ s ): stringKonvertiert die Zeichenfolge in den Fall
toUpper (string $ s ): stringKonvertiert die Saite in den oberen Fall
words (string $ pattern , string $ string ): arraySpalt in ein Array seiner Worte.
collect(?iterable $ iterable ): array Sammelt IT -Iterable in array
eq ( $ a , $ b ): bool $a == $b
equals ( $ a , $ b ): bool $a === $b
F (... $ args ): bool Gibt immer false zurück
identity ( $ value )Gibt das erste Argument zurück, das es erhält.
iterate (callable $ f , $ value ): iterable Gibt einen Generator von $value , $f($value) , $f($f($value)) usw. zurück.
just ( $ value ): OptionalGibt einen optionalen mit dem angegebenen Nicht-Null-Wert zurück
nothing(): OptionalGibt eine leere optionale zurück
now (): intGibt den Zeitstempel der Anzahl der Sekunden zurück
just (mixed $ value ): OptionalMöglicherweise/Option Monad (Container), der möglicherweise keinen Nullwert enthalten oder nicht. Hat Methoden:
isPresent(): bool - true wenn nicht leer
isEmpty(): bool - true , wenn leer
get(): mixed - Rückgabewert, Ausnahme auslegen, wenn es leer ist
orElse(mixed $default): mixed - Gibt den enthaltenen Wert zurück, wenn das optionale nicht leere oder $default ist
orElseThrow(Exception $e) - Gibt den enthaltenen Wert zurück, falls vorhanden, ansonsten eine Ausnahme werfen
map(callable $f): Optional - Wenn ein Wert vorhanden ist, wenden Sie das $f darauf an, und wenn das Ergebnis nicht null ist, geben Sie ein optionales Beschreiben des Ergebniss zurück
flatMap(callable $f): Optional - Verwenden Sie anstelle von map , wenn $f optional zurückgibt
filter(callable $predicate): Optional - Wenn ein Wert vorhanden ist und mit dem $predicate übereinstimmt, geben Sie ein optional mit dem Wert zurück, ansonsten ein leeres optional.
size (array|Countable|object|string|callable $ value ): intGibt die Größe einer zählbaren, Anzahl der Parameter einer Funktion, der String oder der Anzahl der Eigenschaften eines Objekts zurück
T (... $ args ): bool Gibt immer true zurück