
ไลบรารียูทิลิตี้ที่ใช้งานได้ PHP พอร์ตของไลบรารี JavaScript Lodash/FP และ Ramda ไปยัง PHP
ฟังก์ชั่นทั้งหมด ไม่มีผลข้างเคียง และ แกงกะหรี่โดยอัตโนมัติ ข้อมูล ไม่เปลี่ยนแปลง
พารามิเตอร์คอลเลกชันที่ทำซ้ำมักจะให้บริการครั้งสุดท้ายเพื่อให้การแกงกะหรี่สะดวก
การประเมินแบบขี้เกียจ / ล่าช้า ได้รับการสนับสนุนในท่อทำงาน
ไปที่ https://idlephp.tech สำหรับรายละเอียดเพิ่มเติมเอกสารและตัวอย่าง
PHP 7.4 หรือสูงกว่า
composer require miroshnikov/idles
บันทึก
Idles กำลังอยู่ระหว่างการพัฒนาที่ใช้งานอยู่ Roadmap คือการเพิ่มวิธีการทั้งหมดจาก Lodash และ Ramda Libraries และเครื่องมือที่ใช้งานได้บางอย่าง
concat(?iterable $ array, $ value ): iterable concatinates $array ด้วย iterables เพิ่มเติม/ค่า
count(callable $ predicate , ?iterable $ collection ): int นับจำนวนรายการใน $collection ที่ตรงกับ $predicate
countBy(callable $ iteratee , ?iterable $ collection ): array ส่งคืนอาร์เรย์: [ $iteratee($value) => จำนวนครั้งที่ $iteratee($value) ถูกพบใน $collection ]
drop(int $ n , ?iterable $ collection ): iterable ข้าม Elemens $n แรกและส่งคืนส่วนที่เหลือของการวนซ้ำ
dropRight(int $ n , ?iterable $ collection ): iterable ข้ามองค์ประกอบ $n สุดท้าย
findIndex(callable $ predicate , ?iterable $ collection ): int ชอบ find แต่ส่งคืนดัชนีขององค์ประกอบแรกที่ส่งคืนความจริงสำหรับ -1 ถ้าไม่พบ
findLastIndex(callable $ predicate , ?iterable $ collection ): int ชอบ find แต่ส่งคืนดัชนีขององค์ประกอบสุดท้ายที่ส่งคืนความจริงสำหรับ -1 หากไม่พบ
flatten(?iterable $ collection ): iterableแบนระดับความลึกเพียงระดับเดียว
flattenDeep(?iterable $ collection ): iterableแบนซ้ำ ๆ ซ้ำ ๆ
flattenDepth(int $ depth , ?iterable $ collection ): iterableอาร์เรย์ที่แบนราบเรย์เรย์ซ้ำแล้วซ้ำอีก
fromPairs(?iterable $ collection ): array สร้างระเบียนใหม่จากคู่คีย์-ค่า การผกผันของ toPairs
head(?iterable $ collecton )รับองค์ประกอบแรกของการวนซ้ำ
indexOf( $ value , ?iterable $ collection ): int ส่งคืนดัชนีของการเกิดขึ้นครั้งแรกของ $value ใน $collection , else -1
intersection(?iterable $ record1 , ?iterable $ record2 ): arrayส่งคืนค่าที่ไม่ซ้ำกันที่รวมอยู่ในทั้งสองระเบียน
intersectionBy(callable $ iteratee , ?iterable $ record1 , ?iterable $ record2 ): array เช่น intersection แต่เรียกใช้ $iteratee สำหรับแต่ละองค์ประกอบก่อนการเปรียบเทียบ
intersectionWith(callable $ comparator , ?iterable $ record1 , ?iterable $ record2 ): array เช่นเดียวกับ intersection แต่เรียกใช้ $comparator เพื่อเปรียบเทียบองค์ประกอบ
join(string $ separator , ?iterable $ collection ): string เข้าร่วมองค์ประกอบ iterable คั่นด้วย $separator
last(?iterable $ collecton )รับองค์ประกอบสุดท้ายของการวนซ้ำ
nth (int $ offset , ?iterable $ collection ) ส่งคืนองค์ประกอบ $offset หาก $offset เป็นค่าลบองค์ประกอบที่ความยาวดัชนี + $offset จะถูกส่งคืน
remove(int $ start , int $ count , ?iterable $ iterable ): array ลบรายการออกจาก $iterable เริ่มต้นที่ $start และมีองค์ประกอบ $count
slice(int $ start , int ? $ end , ?iterable $ collection ): iterable retruns ชิ้นของ $iterable จาก $start จนถึง แต่ไม่รวม $end
take(int $ n , ?iterable $ collection ): iterableรับองค์ประกอบแรกจาก iterable
takeRight(int $ n , ?iterable $ collection ): arrayส่งคืนชิ้นส่วนที่ซ้ำกับองค์ประกอบ n ที่นำมาจากจุดสิ้นสุด
uniq(?iterable $ collection ): array ลบซ้ำโดยใช้ ===
uniqBy(callable $ iteratee , ?iterable $ collection ): array ชอบ uniq แต่ใช้ Fist $iteratee
uniqWith(callable $ predicate , ?iterable $ collection ): array เช่นเดียวกับ uniq แต่ใช้ $predicate เพื่อเปรียบเทียบองค์ประกอบ
without(array $ values , ?iterable $ collection ): iterable ส่งคืน $iterable โดยไม่มี $values
zip (iterable $ a , iterable $ b ): iterableสร้างองค์ประกอบที่จัดกลุ่มซ้ำซึ่งเป็นครั้งแรกที่มีองค์ประกอบแรกของ iterables ที่ได้รับซึ่งส่วนที่สองมีองค์ประกอบที่สองและอื่น ๆ
zipWith (callable $ iteratee , iterable $ a , iterable $ b ): iterable เช่น zip ยกเว้นว่าจะยอมรับ $iteratee เพื่อระบุว่าควรรวมค่ากลุ่มอย่างไร
all(?callable $ predicate , ?iterable $ collection ): bool ตรวจสอบว่า $predicate ส่งคืน truthy สำหรับองค์ประกอบทั้งหมดของ $collection หยุดเมื่อมันส่งคืน falsey
any(callable $ predicate , ?iterable $ collection ): bool ตรวจสอบว่า $predicate ส่งคืนความจริงสำหรับองค์ประกอบใด ๆ ของ $collection พบในครั้งแรกที่พบ
each(callable $ iteratee , ?iterable $ collection ): iterable วนซ้ำองค์ประกอบของ $collection การวนซ้ำอาจออกจากการทำซ้ำก่อนเวลาโดยการกลับมา false
filter(callable $ predicate , ?iterable $ collection ): iterable ส่งคืนองค์ประกอบ $predicate ส่งคืนความจริงสำหรับ
find(?callable $ predicate , ?iterable $ collection ) ส่งคืนองค์ประกอบแรก $predicate ส่งคืนความจริงสำหรับ
flatMap(callable $ iteratee , ?iterable $ collection ): iterableแผนที่แล้วแบน
flatMapDeep(callable $ iteratee , ?iterable $ collection ): iterable เช่นเดียวกับ flatMap แต่แบนผลลัพธ์ซ้ำ ๆ
flatMapDepth(callable $ iteratee , int $ depth , ?iterable $ collection ): iterable เช่น flatMap แต่แบนผลลัพธ์ที่แมปสูงถึง $depth time
groupBy(callable $ iteratee , ?iterable $ collection ): array สร้างอาร์เรย์ที่ประกอบด้วยคีย์ที่สร้างขึ้นจากการรันแต่ละค่าผ่าน $iteratee
includes( $ value , ?iterable $ collection ): bool ตรวจสอบว่า $value อยู่ใน $collection
indexBy(callable $ iteratee , ?iterable $ collection ): iterable สร้างบันทึกที่ประกอบด้วยคีย์ที่สร้างขึ้นจากผลลัพธ์ของการรันแต่ละองค์ประกอบของ $collection ผ่าน $iteratee
map (callable $ iteratee , ?iterable $ collection ) เรียกใช้แต่ละองค์ประกอบใน $collection ผ่าน $iteratee
orderBy (array $ iteratees , array $ orders , ?iterable $ collection ) เช่น sortBy แต่อนุญาตให้ระบุคำสั่งเรียงลำดับ
partition(callable $ predicate , ?iterable $ collection ): array แยก $collection ออกเป็นสองกลุ่มซึ่งเป็นครั้งแรกที่มีองค์ประกอบ $predicate ส่งคืนความจริงสำหรับสองซึ่งมีองค์ประกอบ $predicate ส่งคืน falsey สำหรับ
reduce (callable $ iteratee , $ accumulator , ?iterable $ collection ) ลด $collection เป็นค่าซึ่งเป็นผลลัพธ์ที่สะสมของการรันแต่ละองค์ประกอบในการรวบรวมผ่าน $iteratee
resolve (array $ resolvers , array $ record ): array เพิ่มคุณสมบัติใหม่ให้กับ $record โดยใช้ $resolvers
sort(array $ comparator , ?iterable $ collection ): array เรียงลำดับ $collection โดยใช้การเปรียบเทียบ $comparator ( $a <=> $b ) ฟังก์ชั่น
sortBy(array $ comparators , ?iterable $ collection ): array เรียงลำดับ $collection ตามลำดับจากน้อยไปมากตาม $comparators
sortWith(array $ comparators , ?iterable $ collection ): array เรียงลำดับ $collection ตามอาร์เรย์ของการเปรียบเทียบ ( $a <=> $b ) ฟังก์ชั่น
values(?iterable $ collection ): iterable ส่งคืนค่า iterable ของค่าใน $collection
always ( $ value )ส่งคืนฟังก์ชั่นที่ส่งคืนค่าที่กำหนดไว้เสมอ
applyTo ( $ value , callable $ interceptor ) ส่งคืน $interceptor($value)
ary (int $ n , callable $ fn ): callable สร้างฟังก์ชั่นที่เรียกใช้ $fn โดยมีอาร์กิวเมนต์สูงถึง $n โดยไม่สนใจอาร์กิวเมนต์เพิ่มเติมใด ๆ
ascend (callable $ func , $ a , $ b ): callable ทำให้ฟังก์ชั่นเปรียบเทียบจากน้อยไปมากจากฟังก์ชั่นที่ส่งคืนค่าที่สามารถเปรียบเทียบกับ <=>
attempt (callable $ fn ) โทร $fn ส่งคืนผลลัพธ์หรือข้อยกเว้นที่จับได้
compose (callable . . . $ funcs ): callable เช่น pipe แต่เรียกใช้ฟังก์ชั่นจากขวาไปซ้าย
curry (callable $ f ): callable Idles_ const อาจใช้เป็นตัวยึด
curryRight (callable $ f ): callable เหมือน curry แต่มีข้อโต้แย้ง
descend (callable $ func , $ a , $ b ): callable ทำให้ฟังก์ชั่นเปรียบเทียบจากมากไปน้อยจากฟังก์ชั่นที่ส่งคืนค่าที่สามารถเปรียบเทียบได้กับ <=>
flip (callable $ fn ): callableส่งคืนฟังก์ชั่นใหม่ที่มีข้อโต้แย้งสองข้อแรกกลับด้าน
juxt (array $ funcs ): callableใช้รายการฟังก์ชั่นกับรายการค่า
memoize (callable $ func ): callable สร้างฟังก์ชั่นที่บันทึกผลลัพธ์ของ $func $resolver ส่งคืนคีย์แคชแผนที่, args [0] โดยค่าเริ่มต้น
negate (callable $ predicate ): callable สร้างฟังก์ชั่นที่ลบล้างผลลัพธ์ของฟังก์ชั่น $predicate
once (callable $ fn ): callable $fn ถูกเรียกเพียงครั้งเดียวค่าแรกจะถูกส่งคืนในการเรียกร้องที่ตามมา
partial (callable $ fn , array $ partials ): callable สร้างฟังก์ชั่นที่เรียกใช้ $fn ด้วย $partials ล่วงหน้าไปยังอาร์กิวเมนต์ Idles_ const อาจใช้เป็นตัวยึด
partialRight (callable $ fn , array $ partials ): callable เช่นเดียวกับ partial แต่ $partials ถูกต่อท้าย
pipe (callable . . . $ funcs ): callableองค์ประกอบฟังก์ชันจากซ้ายไปขวา อาร์กิวเมนต์แรกอาจมี arity ใด ๆ ; อาร์กิวเมนต์ที่เหลือจะต้องเป็นไปไม่ได้
tap (callable $ interceptor , $ value ) โทร $interceptor($value) จากนั้นส่งคืน $value ดั้งเดิม
times (callable $ iteratee , int $ n ): array เรียกว่า iteree $n ครั้งส่งคืนอาร์เรย์ของผลลัพธ์ของการร้องขอแต่ละครั้ง
tryCatch (callable $ tryer , callable $ catcher , $ value ) โทร $tryer ถ้ามันโยนโทร $catcher
unary (callable $ fn ): callable ary(1, $fn)
allPass (array $ predicates ): callable ส่งคืนฟังก์ชั่นที่ตรวจสอบว่าอาร์กิวเมนต์ของมันผ่าน $predicates ทั้งหมดหรือไม่
anyPass (array $ predicates ): callable ส่งคืนฟังก์ชั่นที่ตรวจสอบว่าอาร์กิวเมนต์ของมันส่งผ่าน $predicates ใด ๆ
both (callable $ func1 , callable $ func2 ): callable ฟังก์ชั่นผลลัพธ์จะส่งคืน $func1(...$args) ถ้ามันเป็น falsy หรือ $func2(...$args) มิฉะนั้นลัดวงจร
cond (array $ pairs ): callable วนซ้ำมากกว่า $pairs และเรียกใช้ฟังก์ชั่นที่สอดคล้องกันของภาคแรกเพื่อคืนความจริง
defaultTo ( $ default )( $ value ) ส่งคืน $value ?? $default
either (callable $ func1 , callable $ func2 ): callable ฟังก์ชั่นผลลัพธ์จะส่งคืน $func1(...$args) หากเป็นความจริงหรือ $func2(...$args) มิฉะนั้นลัดวงจร
ifElse (callable $ predicate , callable $ onTrue , callable $ onFalse ): callable ฟังก์ชั่นผลลัพธ์จะส่งคืน $onTrue(...$args) ถ้า $predicate(...$args) เป็นความจริงหรือ $onFalse(...$args) มิฉะนั้น
not ( $ a ): bool คืน !$a
unless (callable $ predicate , callable $ whenFalse , mixed $ value ) ส่งคืน $predicate($value) ? $value : $whenFalse($value)
when (callable $ predicate , callable $ whenTrue , mixed $ value ) ส่งคืน $predicate($value) ? $whenTrue($value) : $value
add (int|float $ a , int|float $ b ): int|float$ a + $ b
dec (int $ number ): intคืนเงิน $ - 1
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 ): intส่งคืน $ number + 1
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 รอบ $number เพื่อระบุ $precision
subtract (int|float $ a , int|float $ b ): int|float$ A - $ B
sum(?iterable $ collection ): int|floatผลรวมองค์ประกอบในการวนซ้ำ
sumBy(?callable $ iteratee , ?iterable $ collection ): int|float เช่น sum แต่ $iteratee ถูกเรียกใช้สำหรับแต่ละองค์ประกอบในการวนซ้ำเพื่อสร้างค่าที่จะรวม
assignDeep (array $ iterables ): arrayการผสานคุณสมบัติซ้ำ ๆ ปุ่มตัวเลขถูกเขียนทับ
defaults(?iterable $ record1 , ?iterable $ record2 ): arrayการรวมคุณสมบัติจากขวาไปซ้ายปุ่มตัวเลขถูกเขียนทับ
evolve(array $ transformations , ?iterable $ record ): array สร้างระเบียนใหม่โดยฟังก์ชั่นการแปลงการเรียกซ้ำด้วยคุณสมบัติ $record
extend(?iterable $ source1 , ?iterable $ source2 ): arrayคุณสมบัติผสานปุ่มตัวเลขถูกเขียนทับ
has(string|int $ key , ?iterable $ record ): bool ตรวจสอบว่า $record มี $key
hasPath(string|int|array $ path , ?iterable $ record ): bool ตรวจสอบว่า $path มีอยู่ใน $record
invert(?iterable $ collection ): arrayแทนที่คีย์ด้วยค่า คีย์ที่ซ้ำกันถูกเขียนทับ
keys(?iterable $ record ): iterable ส่งคืนการจัดทำดัชนีของคีย์ใน $record
merge(?iterable $ source1 , ?iterable $ source2 ): arrayการผสานคุณสมบัติคีย์ตัวเลขจะถูกผนวกเข้า
mergeDeep (array $ iterables ): arrayการรวมคุณสมบัติซ้ำคีย์ตัวเลขจะถูกผนวกเข้า
mergeLeft(?iterable $ left , ?iterable $ right ): array Calls merge($right, $left)
mergeWith(callable $ customizer , ?iterable $ left , ?iterable $ right ): array $customizer merge
modifyPath (array|string|int $ path , callable $ updater , ?iterable $ record ) สร้างระเบียนใหม่โดยใช้ฟังก์ชัน $updater กับค่าที่ $path ที่กำหนด
objOf (string $ key , $ value ): array สร้าง array ที่มีคีย์เดียว => คู่ค่า
omit(array $ keys , ?iterable $ collection ): iterable ตรงกันข้ามกับ pick ส่งคืนบันทึกโดยไม่มี $keys
omitBy(callable $ predicate , ?iterable $ record ): iterable ตรงกันข้ามกับ pickBy ส่งคืนคุณสมบัติของ $record ที่ $predicate ส่งคืน falsey สำหรับ
path (array|string $ path , ?iterable $ collection )ดึงค่าที่เส้นทางที่กำหนด
paths(array $ paths , ?iterable $ collection ): arrayคีย์ในค่าออก คำสั่งจะถูกเก็บรักษาไว้
pick(array $ keys , ?iterable $ collection ): iterable ส่งคืนระเบียนที่มีเพียง $keys
pickBy(callable $ predicate , ?iterable $ record ): iterable ส่งคืนบันทึกที่มีเพียงคีย์ $predicate ส่งคืนความจริงสำหรับ
pluck (string|int $ key , ?iterable $ collection )ส่งคืนอาร์เรย์ใหม่โดยการถอนคุณสมบัติที่มีชื่อเดียวกันปิดบันทึกทั้งหมดในอาร์เรย์ที่ให้มา
prop (string|int $ key , ?iterable $ record )ส่งคืนคุณสมบัติที่ระบุ
propEq(string|int $ key , $ value , ?iterable $ record ): boolส่งคืน $ record [$ key] == ค่า
setPath ( $ path , $ value , ?iterable $ record ) ส่งคืนสำเนา $record ด้วย $path set ด้วย $value
toPairs(?iterable $ record ): iterable แปลงบันทึกเป็นอาร์เรย์ของ [$key, $value]
where(array $ spec , ?iterable $ record ): bool ตรวจสอบว่า $record เป็นไปตามข้อกำหนดโดยเรียกใช้คุณสมบัติ $spec ด้วยคุณสมบัติที่สอดคล้องกันของ $record
whereAny(array $ spec , ?iterable $ record ): bool ตรวจสอบว่า $record เป็นไปตามข้อกำหนดโดยเรียกใช้คุณสมบัติ $spec ด้วยคุณสมบัติที่สอดคล้องกันของ $record ส่งคืน true ถ้าอย่างน้อยหนึ่งภาคแสดงผลตอบแทน true
whereEq(array $ spec , ?iterable $ test ): bool ตรวจสอบว่า $test เป็นไปตาม $spec
escape (string $ s ): stringแปลงอักขระ "&", "<", ">", '"' และ" '"เป็นเอนทิตี HTML ที่เกี่ยวข้อง
escapeRegExp (string $ regexp ): stringหลบหนีการแสดงออกปกติ
split (string $ separator , string $ s ): array แยกสตริงด้วย $separator
startsWith (string $ target , string $ s ): bool หากสตริงเริ่มต้นด้วย $target
toLower (string $ s ): stringแปลงสตริงเป็นตัวพิมพ์เล็ก
toUpper (string $ s ): stringแปลงสตริงเป็นตัวพิมพ์ใหญ่
words (string $ pattern , string $ string ): arrayแยกสตริงออกเป็นอาร์เรย์ของคำพูด
collect(?iterable $ iterable ): array รวบรวมสิ่งที่ติดตั้งไว้ใน array
eq ( $ a , $ b ): bool $a == $b
equals ( $ a , $ b ): bool $a === $b
F (... $ args ): bool ส่งคืน false เสมอ
identity ( $ value )ส่งคืนอาร์กิวเมนต์แรกที่ได้รับ
iterate (callable $ f , $ value ): iterable ส่งคืนเครื่องกำเนิดไฟฟ้าของ $value , $f($value) , $f($f($value)) ฯลฯ
just ( $ value ): Optionalส่งคืนตัวเลือกด้วยค่าที่ไม่ได้ระบุ
nothing(): Optionalส่งคืนตัวเลือกที่ว่างเปล่า
now (): intส่งคืนการประทับเวลาของจำนวนวินาที
just (mixed $ value ): Optionalอาจ/ตัวเลือก monad (คอนเทนเนอร์) ซึ่งอาจหรือไม่มีค่าที่ไม่ใช่ค่า NULL มีวิธีการ:
isPresent(): bool - true ถ้าไม่ว่างเปล่า
isEmpty(): bool - true ถ้าว่างเปล่า
get(): mixed - ผลตอบแทนโยนข้อยกเว้นถ้าว่างเปล่า
orElse(mixed $default): mixed - ส่งคืนค่าที่มีอยู่หากตัวเลือกไม่ได้รับการยกเว้นหรือ $default
orElseThrow(Exception $e) - ส่งคืนค่าที่มีอยู่ถ้ามีอยู่มิฉะนั้นจะโยนข้อยกเว้น
map(callable $f): Optional - หากมีค่าให้ใช้ $f กับมันและหากผลลัพธ์ไม่ใช่ ONLL ให้ส่งคืนตัวเลือกการอธิบายผลลัพธ์
flatMap(callable $f): Optional - ใช้แทน map ถ้า $f ส่งคืนตัวเลือก
filter(callable $predicate): Optional - หากมีค่าอยู่และตรงกับ $predicate ให้ส่งคืนตัวเลือกด้วยค่ามิฉะนั้นจะเป็นตัวเลือกที่ว่างเปล่า
size (array|Countable|object|string|callable $ value ): intส่งคืนขนาดของจำนวนพารามิเตอร์ที่นับได้ของฟังก์ชันความยาวของสตริงหรือจำนวนคุณสมบัติของวัตถุ
T (... $ args ): bool กลับมา true เสมอ