การจัดการอาร์เรย์ PHP ที่ง่ายดายและสวยงามโดยใช้วัตถุคอลเลกชันที่มีลักษณะคล้ายอาร์เรย์ที่นำเสนอโดย jQuery และ Laravel Collections
ผู้แต่งต้องการจุดมุ่งหมาย/แผนที่
เวอร์ชัน PHP ที่รองรับ:
PHP7.1+
PHP 8+
สารบัญ
ทำไมต้องใช้ PHP Map
รายการวิธีการ
สร้าง
เข้าถึง
เพิ่ม
รวม
ดีบัก
คำสั่ง
ย่อให้สั้นลง
ทดสอบ
กลายพันธุ์
เบ็ดเตล็ด
เอกสารประกอบ
วิธีการที่กำหนดเอง
ผลงาน
คู่มือการอัพเกรด
แทน:
$list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];$list[ ] = ['id' => 'สาม', 'value' => 'value3']; // เพิ่ม elementunset( $list[0] ); // ลบองค์ประกอบ$list = array_filter( $list ); // ลบค่าว่าง ( $list ); // เรียงลำดับองค์ประกอบ$pairs = array_column( $list, 'value', 'id' ); // สร้าง ['สาม' => 'value3']$value = รีเซ็ต( $pairs ) ?: null; //ส่งคืนค่าแรก
ใช้เฉพาะ:
$list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];$value = map( $list ) // สร้างแผนที่->push( ['id' => 'three', 'value' => 'value3'] ) // เพิ่มองค์ประกอบ->ลบ( 0 ) // ลบองค์ประกอบ->ตัวกรอง () // ลบค่าว่างออก ค่า->sort() // เรียงลำดับองค์ประกอบ->col( 'value', 'id' ) // create ['three' => 'value3']->first(); //ส่งคืนค่าแรก
คุณยังสามารถใช้:
$map[] = ['id' => 'three', 'value' => 'value3'];$value = $map[0];count( $map );foreach( $map as $key => ค่า );
ใช้การโทรกลับ:
นอกจากนี้ map object ยังช่วยให้คุณสามารถส่งผ่านฟังก์ชันที่ไม่ระบุชื่อไปยังวิธีการต่างๆ มากมาย เช่น:
$map->each( function( $val, $key ) { echo $key . ': ' . $val; -
สไตล์ jQuery:
หากองค์ประกอบแผนที่ของคุณเป็นวัตถุ คุณสามารถเรียกใช้วิธีการของแต่ละวัตถุและรับผลลัพธ์เป็นแผนที่ใหม่ได้เหมือนกับใน jQuery:
// MyClass ใช้ setStatus() (ส่งคืน $this) และ getCode() (เริ่มต้นโดย Constructor)$map = Map::from( ['a' => new MyClass( 'x' ), 'b' => new MyClass ( 'y' )] );$map->setStatus( 1 )->getCode()->toArray();
สิ่งนี้จะเรียก setStatus( 1 )
บนวัตถุทั้งสอง หากการใช้งาน setStatus()
ส่งคืน $this
แผนที่ใหม่ก็จะมี:
['a' => MyClass(), 'b' => MyClass()]
ในองค์ประกอบแผนที่ใหม่เหล่านั้น getCode()
จะถูกเรียกโดยส่งคืน x
สำหรับวัตถุแรกและ y
สำหรับวัตถุที่สอง แผนที่ที่สร้างจากผลลัพธ์ของ getCode()
จะกลับมา:
['a' => 'x', 'b' => 'y']
ฟังก์ชั่นแผนที่ ฟังก์ชั่น is_map __call __callStatic __สร้างหลังจากทั้งหมด arsort arsorted asorted asorted ที่ avg ก่อน bool call cast chunk clear clone col ยุบ รวม เปรียบเทียบ concat มีจำนวนการคัดลอก countBy dd ตัวคั่น diff diffAssoc diffKeys ดัมพ์ ซ้ำกัน แต่ละว่าง เท่ากับทุก ๆ ยกเว้น ตัวกรองระเบิด ค้นหาครั้งแรก firstKey พลิกแบน float จาก fromJson รับ getIterator grep groupBy มี ifAny ifEmpty นำไปใช้ รวมถึงการแทรกดัชนีหลังจากแทรกที่แทรกก่อน inString int ตัดตัดกัน Assoc intersectKeys คือ isEmpty isNumeric isObject isScalar isString เข้าร่วม jsonSerialize คีย์ krsort krsorted ksort สุดท้าย LastKey ltrim map วิธีการผสานสูงสุด min ไม่มี nth offsetExists offsetGet offsetSet offsetUnset เท่านั้น คำสั่ง pad พาร์ติชัน เปอร์เซ็นต์ ไปป์ ดึง ป๊อป pos คำนำหน้า นำหน้า ดึง ผลัก ใส่ สุ่มลดการปฏิเสธ rekey ลบ แทนที่ ย้อนกลับ ย้อนกลับ rsort rsorted rtrim ค้นหา ก.ย. ตั้งค่า shift shuffle สับ ข้ามชิ้น บางประเภท เรียงลำดับ ประกบกัน แยก strAfter strContains strContainsAll strEnds strEndsAll string strLower strReplace strStarts strStartsAll strUpper ต่อท้าย ผลรวม ใช้เวลาแตะครั้ง toArray toJson toReversed toSorted toUrl แปลง แปลง traverse tree ตัด uasort uasorted uksort uksorted union ที่ไม่ซ้ำกัน unshift usort ค่า usorted เดินโดยที่ มีซิป
function map() : สร้างแผนที่ใหม่จากองค์ประกอบที่ส่งผ่าน
__construct() : สร้างแผนที่ใหม่
clone() : โคลนแผนที่และวัตถุทั้งหมดภายใน
copy() : สร้างสำเนาใหม่
explode() : แยกสตริงออกเป็นแผนผังขององค์ประกอบ
from() : สร้างแผนที่ใหม่จากองค์ประกอบที่ส่งผ่าน
fromJson() : สร้างแผนที่ใหม่จากสตริง JSON
times() : สร้างแผนที่ใหม่โดยเรียกใช้การปิดหลายครั้ง
tree() : สร้างโครงสร้างแบบต้นไม้จากรายการ
__call() : เรียกวิธีการที่กำหนดเอง
__callStatic() : เรียกวิธีการที่กำหนดเองแบบคงที่
all() : ส่งกลับอาร์เรย์ธรรมดา
at() : ส่งคืนค่า ณ ตำแหน่งที่กำหนด
bool() : ส่งคืนองค์ประกอบด้วยคีย์และแปลงเป็นบูลีน
call() : เรียกเมธอดที่กำหนดในทุกไอเท็ม
find() : ส่งคืนองค์ประกอบที่ตรงกันรายการแรก/รายการสุดท้าย
first() : ส่งคืนองค์ประกอบแรก
firstKey() : ส่งคืนคีย์แรก
get() : ส่งคืนองค์ประกอบด้วยคีย์
index() : ส่งกลับดัชนีตัวเลขของคีย์ที่กำหนด
int() : ส่งคืนองค์ประกอบด้วยคีย์และแปลงเป็นจำนวนเต็ม
float() : ส่งคืนองค์ประกอบด้วยคีย์และกำหนดให้ลอย
Keys() : ส่งคืนคีย์ทั้งหมด
Last() : ส่งคืนองค์ประกอบสุดท้าย
LastKey() : ส่งคืนคีย์สุดท้าย
pop() : ส่งคืนและลบองค์ประกอบสุดท้าย
pos() : ส่งกลับดัชนีตัวเลขของค่า
pull() : ส่งคืนและลบองค์ประกอบด้วยคีย์
Random() : ส่งคืนองค์ประกอบสุ่มที่เก็บรักษาคีย์
search() : ค้นหาคีย์ขององค์ประกอบ
shift() : ส่งคืนและลบองค์ประกอบแรก
string() : ส่งคืนองค์ประกอบด้วยคีย์และส่งไปที่สตริง
toArray() : ส่งกลับอาร์เรย์ธรรมดา
Unique() : ส่งคืนองค์ประกอบเฉพาะทั้งหมดที่เก็บคีย์ไว้
ค่า () : ส่งคืนองค์ประกอบทั้งหมดด้วยคีย์ใหม่
concat() : เพิ่มองค์ประกอบทั้งหมดด้วยคีย์ใหม่
insertAfter() : แทรกค่าหลังองค์ประกอบที่กำหนด
insertAt() : แทรกองค์ประกอบในตำแหน่งที่กำหนดในแผนที่
insertBefore() : แทรกค่าก่อนองค์ประกอบที่กำหนด
merge() : รวมองค์ประกอบที่เขียนทับองค์ประกอบที่มีอยู่
pad() : เติมตามความยาวที่กำหนดด้วยค่าที่กำหนด
prepend() : เพิ่มองค์ประกอบที่จุดเริ่มต้น (นามแฝง)
push() : เพิ่มองค์ประกอบที่ส่วนท้าย
put() : ตั้งค่าคีย์และค่าที่กำหนดในแผนที่ (นามแฝง)
set() : เขียนทับหรือเพิ่มองค์ประกอบ
union() : เพิ่มองค์ประกอบโดยไม่ต้องเขียนทับองค์ประกอบที่มีอยู่
unshift() : เพิ่มองค์ประกอบที่จุดเริ่มต้น
with() : ส่งคืนสำเนาและตั้งค่าองค์ประกอบ
avg() : ส่งกลับค่าเฉลี่ยของค่าทั้งหมด
count() : ส่งกลับจำนวนองค์ประกอบทั้งหมด
countBy() : นับความถี่ที่ค่าเดียวกันอยู่ในแผนที่
max() : ส่งกลับค่าสูงสุดขององค์ประกอบทั้งหมด
min() : ส่งคืนค่าต่ำสุดขององค์ประกอบทั้งหมด
เปอร์เซ็นต์() : ส่งกลับเปอร์เซ็นต์ขององค์ประกอบทั้งหมดที่ผ่านการทดสอบ
sum() : ส่งคืนผลรวมของค่าทั้งหมดในแผนที่
dd() : พิมพ์เนื้อหาแผนที่และสิ้นสุดสคริปต์
dump() : พิมพ์เนื้อหาแผนที่
tap() : ส่งโคลนของแผนที่ไปยังการโทรกลับที่กำหนด
arsort() : องค์ประกอบการเรียงลำดับย้อนกลับที่รักษาคีย์
arsorted() : ย้อนกลับองค์ประกอบการเรียงลำดับโดยรักษาคีย์ไว้ในสำเนาของแผนที่
asort() : จัดเรียงองค์ประกอบที่เก็บรักษาคีย์
asorted() : จัดเรียงองค์ประกอบที่เก็บรักษาคีย์ไว้ในสำเนาของแผนที่
krsort() : ย้อนกลับองค์ประกอบการเรียงลำดับตามคีย์
krsorted() : ย้อนกลับองค์ประกอบการเรียงลำดับโดยใช้คีย์ในสำเนาของแผนที่
ksort() : จัดเรียงองค์ประกอบตามคีย์
order() : จัดลำดับองค์ประกอบด้วยคีย์ที่ส่งผ่าน
Reverse() : ย้อนกลับคีย์การรักษาลำดับอาร์เรย์
Reversed() : กลับลำดับองค์ประกอบในสำเนาของแผนที่
toReversed() : กลับลำดับองค์ประกอบในสำเนาของแผนที่ (นามแฝง)
rsort() : ย้อนกลับองค์ประกอบการเรียงลำดับโดยใช้คีย์ใหม่
rsorted() : ย้อนกลับองค์ประกอบการเรียงลำดับโดยใช้คีย์ใหม่ในสำเนาของแผนที่
shuffle() : สุ่มลำดับองค์ประกอบ
shuffled() : สุ่มลำดับองค์ประกอบในสำเนาของแผนที่
sort() : เรียงลำดับองค์ประกอบในตำแหน่งโดยกำหนดคีย์ใหม่
sorted() : จัดเรียงองค์ประกอบในสำเนาของแผนที่โดยใช้คีย์ใหม่
toSorted() : เรียงลำดับองค์ประกอบในสำเนาของแผนที่โดยใช้คีย์ใหม่ (นามแฝง)
uasort() : เรียงลำดับองค์ประกอบที่รักษาคีย์โดยใช้การโทรกลับ
uasorted() : เรียงลำดับองค์ประกอบที่รักษาคีย์โดยใช้การโทรกลับในสำเนาของแผนที่
uksort() : จัดเรียงองค์ประกอบตามปุ่มโดยใช้การโทรกลับ
uksorted() : จัดเรียงองค์ประกอบตามคีย์โดยใช้การโทรกลับในสำเนาของแผนที่
usort() : เรียงลำดับองค์ประกอบโดยใช้การโทรกลับโดยกำหนดคีย์ใหม่
usorted() : จัดเรียงองค์ประกอบโดยใช้การโทรกลับโดยกำหนดคีย์ใหม่ในสำเนาของแผนที่
after() : ส่งคืนองค์ประกอบหลังจากองค์ประกอบที่กำหนด
before() : ส่งคืนองค์ประกอบก่อนหน้าองค์ประกอบที่กำหนด
clear() : ลบองค์ประกอบทั้งหมด
diff() : ส่งคืนองค์ประกอบที่ขาดหายไปในรายการที่กำหนด
diffAssoc() : ส่งคืนองค์ประกอบที่ขาดหายไปในรายการที่กำหนดและตรวจสอบคีย์
diffKeys() : ส่งคืนองค์ประกอบที่ขาดหายไปในรายการที่กำหนดด้วยคีย์
ยกเว้น() : ส่งคืนแผนที่ใหม่โดยไม่มีคีย์องค์ประกอบที่ส่งผ่าน
filter() : ใช้ตัวกรองกับองค์ประกอบทั้งหมด
grep() : ใช้นิพจน์ทั่วไปกับองค์ประกอบทั้งหมด
intersect() : ส่งคืนองค์ประกอบที่ใช้ร่วมกัน
intersectAssoc() : ส่งคืนองค์ประกอบที่แชร์และตรวจสอบคีย์
intersectKeys() : ส่งคืนองค์ประกอบที่ใช้ร่วมกันโดยคีย์
nth() : ส่งคืนทุกองค์ประกอบที่ n จากแผนที่
only() : ส่งคืนเฉพาะองค์ประกอบที่ระบุโดยคีย์
pop() : ส่งคืนและลบองค์ประกอบสุดท้าย
pull() : ส่งคืนและลบองค์ประกอบด้วยคีย์
ปฏิเสธ() : ลบองค์ประกอบที่ตรงกันทั้งหมด
Remove() : ลบองค์ประกอบด้วยคีย์
shift() : ส่งคืนและลบองค์ประกอบแรก
ข้าม() : ข้ามจำนวนรายการที่กำหนดและส่งคืนส่วนที่เหลือ
Slice() : ส่งคืนส่วนของแผนที่
take() : ส่งกลับแผนที่ใหม่พร้อมจำนวนรายการที่กำหนด
โดยที่() : กรองรายการองค์ประกอบตามเงื่อนไขที่กำหนด
function is_map() : ทดสอบว่าตัวแปรเป็นวัตถุแผนที่หรือไม่
Compare() : เปรียบเทียบค่ากับองค์ประกอบแผนที่ทั้งหมด
contains() : ทดสอบว่ามีรายการอยู่ในแผนที่หรือไม่
Each() : ใช้การเรียกกลับกับแต่ละองค์ประกอบ
Empty() : ทดสอบว่าแผนที่ว่างเปล่าหรือไม่
เท่ากับ() : ทดสอบว่าเนื้อหาแผนที่เท่ากันหรือไม่
every() : ตรวจสอบว่าองค์ประกอบทั้งหมดผ่านการทดสอบการโทรกลับที่กำหนด
has() : ทดสอบว่ามีคีย์อยู่หรือไม่
if() : ดำเนินการโทรกลับตามเงื่อนไข
ifAny() : ดำเนินการโทรกลับหากแผนที่มีองค์ประกอบ
ifEmpty() : ดำเนินการโทรกลับหากแผนที่ว่างเปล่า
in() : ทดสอบว่ามีองค์ประกอบรวมอยู่หรือไม่
include() : ทดสอบว่ามีองค์ประกอบรวมอยู่หรือไม่
inString() : ทดสอบว่ารายการนั้นเป็นส่วนหนึ่งของสตริงในแผนที่หรือไม่
is() : ทดสอบว่าแผนที่ประกอบด้วยคีย์และค่าเดียวกันหรือไม่
isEmpty() : ทดสอบว่าแผนที่ว่างเปล่าหรือไม่
isNumeric() : ทดสอบว่ารายการทั้งหมดเป็นค่าตัวเลขหรือไม่
isObject() : ทดสอบว่ารายการทั้งหมดเป็นวัตถุหรือไม่
isScalar() : ทดสอบว่ารายการทั้งหมดเป็นค่าสเกลาร์หรือไม่
isString() : ทดสอบว่ารายการทั้งหมดเป็นค่าสตริงหรือไม่
Applys() : ทดสอบว่ารายการทั้งหมดเป็นอ็อบเจ็กต์ที่ใช้งานอินเทอร์เฟซหรือไม่
none() : ทดสอบว่าไม่มีองค์ประกอบใดเป็นส่วนหนึ่งของแผนที่
some() : ทดสอบว่ามีองค์ประกอบอย่างน้อยหนึ่งองค์ประกอบรวมอยู่หรือไม่
strContains() : ทดสอบว่าสตริงที่ส่งผ่านอย่างน้อยหนึ่งรายการเป็นส่วนหนึ่งของรายการอย่างน้อยหนึ่งรายการหรือไม่
strContainsAll() : ทดสอบว่ารายการทั้งหมดมีสตริงที่ส่งผ่านอย่างใดอย่างหนึ่งหรือไม่
strEnds() : ทดสอบว่าอย่างน้อยหนึ่งรายการลงท้ายด้วยหนึ่งในสตริงที่ส่งผ่าน
strEndsAll() : ทดสอบว่ารายการทั้งหมดลงท้ายด้วยสตริงที่ส่งผ่านอย่างน้อยหนึ่งรายการหรือไม่
strStarts() : ทดสอบว่าอย่างน้อยหนึ่งรายการเริ่มต้นด้วยสตริงที่ส่งผ่านอย่างน้อยหนึ่งรายการ
strStartsAll() : ทดสอบว่ารายการทั้งหมดเริ่มต้นด้วยสตริงที่ส่งผ่านอันใดอันหนึ่งหรือไม่
cast() : แคสต์รายการทั้งหมดเป็นประเภทที่ส่งผ่าน
chunk() : แบ่งแผนที่ออกเป็นส่วนๆ
col() : สร้างการแมปคีย์/ค่า
ยุบ() : ยุบองค์ประกอบหลายมิติที่เขียนทับองค์ประกอบ
Combine() : รวมองค์ประกอบแผนที่เป็นคีย์ที่มีค่าที่กำหนด
flat() : ทำให้องค์ประกอบหลายมิติเรียบขึ้นโดยไม่ต้องเขียนทับองค์ประกอบ
flip() : แลกเปลี่ยนคีย์ด้วยค่าของมัน
groupBy() : จัดกลุ่มองค์ประกอบอาร์เรย์หรือวัตถุที่เชื่อมโยง
join() : ส่งคืนองค์ประกอบที่ต่อกันเป็นสตริงพร้อมตัวคั่น
ltrim() : ลบอักขระที่ส่งผ่านออกจากด้านซ้ายของสตริงทั้งหมด
map() : ใช้การเรียกกลับกับแต่ละองค์ประกอบและส่งกลับผลลัพธ์
partition() : แบ่งรายการออกตามจำนวนกลุ่มที่กำหนด
pipe() : ใช้การเรียกกลับกับแผนที่ทั้งหมด
pluck() : สร้างการแมปคีย์/ค่า (นามแฝง)
prefix() : เพิ่มคำนำหน้าให้กับแต่ละรายการแผนที่
ลด() : คำนวณค่าเดียวจากเนื้อหาแผนที่
rekey() : เปลี่ยนคีย์ตามฟังก์ชันที่ส่งผ่าน
แทนที่() : แทนที่องค์ประกอบแบบวนซ้ำ
rtrim() : ลบอักขระที่ส่งผ่านทางด้านขวาของสตริงทั้งหมด
splice() : แทนที่ชิ้นด้วยองค์ประกอบใหม่
strAfter() : ส่งกลับสตริงหลังจากค่าที่ส่งผ่าน
strLower() : แปลงอักขระตัวอักษรทั้งหมดให้เป็นตัวพิมพ์เล็ก
strReplace() : แทนที่สตริงการค้นหาที่เกิดขึ้นทั้งหมดด้วยสตริงการแทนที่
strUpper() : แปลงอักขระตัวอักษรทั้งหมดให้เป็นตัวพิมพ์ใหญ่
suffix() : เพิ่มส่วนต่อท้ายให้กับแต่ละรายการแผนที่
toJson() : ส่งคืนองค์ประกอบในรูปแบบ JSON
toUrl() : สร้างสตริงการสืบค้น HTTP
transfrom() : ใช้การเรียกกลับกับแต่ละองค์ประกอบซึ่งสร้างคู่คีย์/ค่าใหม่
transpose() : แลกเปลี่ยนแถวและคอลัมน์สำหรับแผนที่สองมิติ
traverse() : สำรวจแผนผังของรายการที่ซ้อนกันโดยส่งแต่ละรายการไปยังการโทรกลับ
trim() : ลบอักขระที่ส่งผ่านออกจากด้านซ้าย/ขวาของสตริงทั้งหมด
walk() : ใช้การเรียกกลับที่กำหนดกับองค์ประกอบทั้งหมด
zip() : รวมค่าของอาร์เรย์ทั้งหมดที่ดัชนีที่เกี่ยวข้อง
delimiter() : ตั้งค่าหรือส่งคืนตัวคั่นสำหรับเส้นทางไปยังอาร์เรย์หลายมิติ
getIterator() : ส่งคืนตัววนซ้ำสำหรับองค์ประกอบ
jsonSerialize() : ระบุข้อมูลที่ควรซีเรียลไลซ์เป็น JSON
method() : ลงทะเบียนวิธีการแบบกำหนดเอง
offsetExists() : ตรวจสอบว่ามีคีย์อยู่หรือไม่
offsetGet() : ส่งคืนองค์ประกอบตามคีย์
offsetSet() : เขียนทับองค์ประกอบ
offsetUnset() : ลบองค์ประกอบด้วยคีย์
sep() : ตั้งค่าตัวคั่นสำหรับเส้นทางไปยังอาร์เรย์หลายมิติในแผนที่ปัจจุบัน
ทดสอบว่าตัวแปรเป็นวัตถุแผนที่หรือไม่
ฟังก์ชั่น is_map( $var ) : bool
@param ผสม $var
Variable เพื่อทดสอบ
ตัวอย่าง:
is_map( แผนที่ใหม่() );// trueis_map( [] );// false
ส่งกลับแผนที่ใหม่สำหรับองค์ประกอบที่ส่งผ่าน
แผนที่ฟังก์ชั่น ( $elements = [] ) : AimeosMap
@param ผสม $elements
รายการองค์ประกอบหรือค่าเดียว
@return อินสแตนซ์แผนที่ AimeosMap
ตัวอย่าง:
// arraymap( [] );// nullmap( null );// scalarmap( 'a' );// objectmap( new stdClass() );// map objectmap( new Map() );// iterable objectmap( ใหม่ ArrayObject() );// ปิดการประเมิน lazilymap ( function() {return []; -
ดูเพิ่มเติมที่:
rekey() - เปลี่ยนคีย์ตามฟังก์ชันที่ส่งผ่าน
แปลง () - สร้างคู่คีย์/ค่าใหม่โดยใช้ฟังก์ชันที่ส่งผ่านและส่งคืนแมปใหม่สำหรับผลลัพธ์
สร้างวัตถุแผนที่ใหม่
ฟังก์ชั่นสาธารณะ __construct( $elements = [] )
@param ผสม $elements
องค์ประกอบเดียว, รายการองค์ประกอบ, วัตถุ Map, วัตถุที่ทำซ้ำได้หรือตัววนซ้ำ, ทุกอย่างอื่น
ตัวอย่าง:
// arraynew Map ( [] ); // แผนที่ nullnew ( null ); // แผนที่ scalarnew ( 'a' ); // objectnew Map ( stdClass ใหม่ () ); // map objectnew Map ( แผนที่ใหม่ () ); // ทำซ้ำ objectnew Map ( new ArrayObject () ); // การปิดประเมิน lazilynew Map ( function () {return []; -
จัดการการเรียกแบบไดนามิกไปยังวิธีการที่กำหนดเองสำหรับชั้นเรียน
ฟังก์ชั่นสาธารณะ __call( สตริง $name, อาร์เรย์ $params )
@param string $name
ชื่อเมธอด
@param array<mixed> $params
รายการพารามิเตอร์
@return ผลลัพธ์ แบบผสม จากฟังก์ชันที่ถูกเรียกหรือแผนที่ใหม่พร้อมผลลัพธ์จากเมธอดองค์ประกอบ
เรียกวิธีการแบบกำหนดเองที่เพิ่มโดย Map::method() วิธีการที่เรียกว่าสามารถเข้าถึงอาร์เรย์ภายในโดยใช้ $this->items
ตัวอย่าง:
แผนที่::method( 'case', function( $case = CASE_LOWER ) {return new self( array_change_key_case( $this->items, $case ) ); - แผนที่::from( ['a' => 'bar'] )->case( CASE_UPPER );// ['A' => 'bar']
นอกจากนี้ยังอนุญาตให้เรียกใช้เมธอดอ็อบเจ็กต์หากรายการเป็นอ็อบเจ็กต์:
$item = MyClass ใหม่(); // ด้วยเมธอด setStatus() (ส่งคืน $this) และ getCode() allowanceMap::from( [$item, $item] )->setStatus( 1 )->getCode()->toArray();
ซึ่งจะเรียกเมธอด setStatus()
ของแต่ละองค์ประกอบในแผนที่ และใช้ค่าที่ส่งคืนเพื่อสร้างแผนที่ใหม่ บนแผนที่ใหม่ เมธอด getCode()
จะถูกเรียกใช้สำหรับทุกองค์ประกอบ และค่าที่ส่งคืนจะถูกเก็บไว้ในแผนที่ใหม่ด้วย จากนั้นแผนที่สุดท้ายนี้จะถูกส่งกลับ และคีย์แผนที่จากแผนที่ต้นฉบับจะถูกเก็บรักษาไว้ในแผนที่ที่ส่งคืน
หากองค์ประกอบไม่ใช่วัตถุ องค์ประกอบเหล่านั้นจะถูกข้าม และหากใช้กับองค์ประกอบทั้งหมด แผนที่ว่างจะถูกส่งกลับ ในกรณีที่แผนที่มีออบเจ็กต์ประเภทผสมและหนึ่งในนั้นไม่ได้ใช้เมธอดที่เรียกว่า ข้อผิดพลาดจะเกิดขึ้น
จัดการการเรียกแบบคงที่ไปยังวิธีการที่กำหนดเองสำหรับชั้นเรียน
ฟังก์ชั่นคงที่สาธารณะ __callStatic( สตริง $name, อาร์เรย์ $params )
@param string $name
ชื่อเมธอด
@param array<mixed> $params
รายการพารามิเตอร์
@return ผลลัพธ์ แบบผสม จากฟังก์ชันที่ถูกเรียกหรือแผนที่ใหม่พร้อมผลลัพธ์จากเมธอดองค์ประกอบ
@throws BadMethodCallException หากไม่มีการลงทะเบียนวิธีการสำหรับชื่อนั้น
เรียกวิธีการแบบกำหนดเองที่เพิ่มโดย Map::method() แบบคงที่ วิธีการที่เรียกว่าไม่มีการเข้าถึงอาร์เรย์ภายในเนื่องจากไม่มีวัตถุที่พร้อมใช้งาน
ตัวอย่าง:
แผนที่::method( 'foo', function( $arg1, $arg2 ) {} ); แผนที่::foo( $arg1, $arg2 );
ส่งคืนองค์ประกอบหลังจากองค์ประกอบที่กำหนด
ฟังก์ชั่นสาธารณะหลัง ( $value ) : self
@param ปิด|int|string $value
ค่าหรือฟังก์ชันที่มีพารามิเตอร์ (รายการ, คีย์)
@return self<int|string,mixed> แผนที่ใหม่พร้อมองค์ประกอบหลังแผนที่ที่กำหนด
คีย์จะถูกเก็บรักษาไว้ด้วยวิธีนี้
ตัวอย่าง:
แผนที่::from( [0 => 'b', 1 => 'a'] )->after( 'b' );// [1 => 'a']แผนที่::from( ['a' = > 1, 'b' => 0] )->หลัง( 1 );// ['b' => 0]Map::from( [0 => 'b', 1 => 'a'] )- >หลัง( 'c' );// []Map::from( ['a', 'c', 'b'] )->after( function( $item, $key ) {return $item >= 'c'; } );// [2 => 'b']
ส่งกลับองค์ประกอบเป็นอาร์เรย์ธรรมดา
ฟังก์ชั่นสาธารณะทั้งหมด () : อาร์เรย์
@return array อาร์เรย์ธรรมดา
ตัวอย่าง:
แผนที่::จาก( ['a'] )->ทั้งหมด();// ['a']
เรียงลำดับองค์ประกอบทั้งหมดในลำดับย้อนกลับและรักษาการเชื่อมโยงคีย์
ฟังก์ชั่นสาธารณะ arsort( int $options = SORT_REGULAR ) : self
@param int $options
เรียงลำดับตัวเลือกสำหรับ arsort()
@return self<int|string,mixed> อัปเดตแผนที่สำหรับอินเทอร์เฟซที่ลื่นไหล
คีย์จะถูกเก็บรักษาไว้โดยใช้วิธีนี้และไม่มีการสร้างแผนที่ใหม่
พารามิเตอร์ $options
ปรับเปลี่ยนวิธีการเปรียบเทียบค่า ค่าพารามิเตอร์ที่เป็นไปได้คือ:
SORT_REGULAR : เปรียบเทียบองค์ประกอบตามปกติ (อย่าเปลี่ยนประเภท)
SORT_NUMERIC : เปรียบเทียบองค์ประกอบเป็นตัวเลข
SORT_STRING : เปรียบเทียบองค์ประกอบเป็นสตริง
SORT_LOCALE_STRING : เปรียบเทียบองค์ประกอบเป็นสตริง ตามสถานที่ปัจจุบันหรือเปลี่ยนแปลงโดย setlocale()
SORT_NATURAL : เปรียบเทียบองค์ประกอบเป็นสตริงโดยใช้ "การเรียงลำดับตามธรรมชาติ" เช่น natsort()
SORT_FLAG_CASE : ใช้ SORT_STRING|SORT_FLAG_CASE และ SORT_NATURAL|SORT_FLAG_CASE เพื่อจัดเรียงสตริงโดยไม่คำนึงถึงขนาดตัวพิมพ์
ตัวอย่าง:
แผนที่::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'] เพราะ 'C' -> 'c' และ 'c' > 'b'
เรียงลำดับสำเนาขององค์ประกอบทั้งหมดในลำดับย้อนกลับและรักษาการเชื่อมโยงคีย์
ฟังก์ชั่นสาธารณะจัดเรียง ( int $options = SORT_REGULAR ) : self
@param int $options
เรียงลำดับตัวเลือกสำหรับ arsort()
@return self<int|string,mixed> อัปเดตแผนที่สำหรับอินเทอร์เฟซที่ลื่นไหล
กุญแจจะถูกเก็บรักษาไว้โดยใช้วิธีนี้และสร้างแผนที่ใหม่
พารามิเตอร์ $options
ปรับเปลี่ยนวิธีการเปรียบเทียบค่า ค่าพารามิเตอร์ที่เป็นไปได้คือ:
SORT_REGULAR : เปรียบเทียบองค์ประกอบตามปกติ (อย่าเปลี่ยนประเภท)
SORT_NUMERIC : เปรียบเทียบองค์ประกอบเป็นตัวเลข
SORT_STRING : เปรียบเทียบองค์ประกอบเป็นสตริง
SORT_LOCALE_STRING : เปรียบเทียบองค์ประกอบเป็นสตริง ตามสถานที่ปัจจุบันหรือเปลี่ยนแปลงโดย setlocale()
SORT_NATURAL : เปรียบเทียบองค์ประกอบเป็นสตริงโดยใช้ "การเรียงลำดับตามธรรมชาติ" เช่น natsort()
SORT_FLAG_CASE : ใช้ SORT_STRING|SORT_FLAG_CASE และ SORT_NATURAL|SORT_FLAG_CASE เพื่อจัดเรียงสตริงโดยไม่คำนึงถึงขนาดตัวพิมพ์
ตัวอย่าง:
แผนที่::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'] เพราะ 'C' -> 'c' และ 'c' > 'b'
เรียงลำดับองค์ประกอบทั้งหมดและรักษาการเชื่อมโยงคีย์
ฟังก์ชั่นสาธารณะ asort ( int $options = SORT_REGULAR ) : self
@param int $options
เรียงลำดับตัวเลือกสำหรับ asort()
@return self<int|string,mixed> อัปเดตแผนที่สำหรับอินเทอร์เฟซที่ลื่นไหล
คีย์จะถูกเก็บรักษาไว้โดยใช้วิธีนี้และไม่มีการสร้างแผนที่ใหม่
พารามิเตอร์จะปรับเปลี่ยนวิธีการเปรียบเทียบค่า ค่าพารามิเตอร์ที่เป็นไปได้คือ:
SORT_REGULAR : เปรียบเทียบองค์ประกอบตามปกติ (อย่าเปลี่ยนประเภท)
SORT_NUMERIC : เปรียบเทียบองค์ประกอบเป็นตัวเลข
SORT_STRING : เปรียบเทียบองค์ประกอบเป็นสตริง
SORT_LOCALE_STRING : เปรียบเทียบองค์ประกอบเป็นสตริง ตามสถานที่ปัจจุบันหรือเปลี่ยนแปลงโดย setlocale()
SORT_NATURAL : เปรียบเทียบองค์ประกอบเป็นสตริงโดยใช้ "การเรียงลำดับตามธรรมชาติ" เช่น natsort()
SORT_FLAG_CASE : ใช้ SORT_STRING|SORT_FLAG_CASE และ SORT_NATURAL|SORT_FLAG_CASE เพื่อจัดเรียงสตริงโดยไม่คำนึงถึงขนาดตัวพิมพ์
ตัวอย่าง:
แผนที่::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 => 'ข'] )->asort();// [0 => 'C', 1 => 'b'] เพราะ 'C' < 'b'Map::from( [0 => 'C', 1 => 'b '] )->arsort( SORT_STRING|SORT_FLAG_CASE );// [1 => 'b', 0 => 'C'] เพราะ 'C' -> 'c' และ 'c' > 'ข'
เรียงลำดับสำเนาขององค์ประกอบทั้งหมดและรักษาการเชื่อมโยงคีย์
ฟังก์ชั่นสาธารณะสารพัน ( int $options = SORT_REGULAR ) : self
@param int $options
เรียงลำดับตัวเลือกสำหรับ asort()
@return self<int|string,mixed> อัปเดตแผนที่สำหรับอินเทอร์เฟซที่ลื่นไหล
กุญแจจะถูกเก็บรักษาไว้โดยใช้วิธีนี้และสร้างแผนที่ใหม่
พารามิเตอร์จะปรับเปลี่ยนวิธีการเปรียบเทียบค่า ค่าพารามิเตอร์ที่เป็นไปได้คือ:
SORT_REGULAR : เปรียบเทียบองค์ประกอบตามปกติ (อย่าเปลี่ยนประเภท)
SORT_NUMERIC : เปรียบเทียบองค์ประกอบเป็นตัวเลข
SORT_STRING : เปรียบเทียบองค์ประกอบเป็นสตริง
SORT_LOCALE_STRING : เปรียบเทียบองค์ประกอบเป็นสตริง ตามสถานที่ปัจจุบันหรือเปลี่ยนแปลงโดย setlocale()
SORT_NATURAL : เปรียบเทียบองค์ประกอบเป็นสตริงโดยใช้ "การเรียงลำดับตามธรรมชาติ" เช่น natsort()
SORT_FLAG_CASE : ใช้ SORT_STRING|SORT_FLAG_CASE และ SORT_NATURAL|SORT_FLAG_CASE เพื่อจัดเรียงสตริงโดยไม่คำนึงถึงขนาดตัวพิมพ์
ตัวอย่าง:
แผนที่::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'] เพราะ 'C' < 'b'Map::from( [0 => 'C', 1 => 'b'] )->สารพัน( SORT_STRING|SORT_FLAG_CASE );// [1 => 'b', 0 => 'C'] เพราะ 'C' -> 'c' และ 'ค' > 'ข'
ส่งกลับค่าในตำแหน่งที่กำหนด
งานสาธารณะที่( int $pos )
@param int $pos
ตำแหน่งของค่าในแผนที่
@return ผสม null ค่าที่ตำแหน่งที่กำหนดหรือ NULL หากไม่มีค่า
ตำแหน่งเริ่มต้นจากศูนย์และตำแหน่ง "0" จะส่งคืนองค์ประกอบแรกของแผนที่ "1" เป็นองค์ประกอบที่สอง และต่อๆ ไป หากตำแหน่งเป็นลบ ลำดับจะเริ่มจากจุดสิ้นสุดของแผนที่
ตัวอย่าง:
แผนที่::จาก( [1, 3, 5] )->ที่( 0 );// 1Map::จาก( [1, 3, 5] )->ที่( 1 );// 3Map::จาก( [ 1, 3, 5] )->ที่( -1 );// 5Map::จาก( [1, 3, 5] )->ที่( 3 );// NULL
ส่งกลับค่าเฉลี่ยของจำนวนเต็มและค่าทศนิยมทั้งหมดในแผนที่
ฟังก์ชั่นสาธารณะ avg( $col = null ) : float
@param ปิด|string|null $col
ปิด คีย์หรือเส้นทางไปยังค่าในอาร์เรย์หรือวัตถุที่ซ้อนกันเพื่อคำนวณค่าเฉลี่ยสำหรับ
@return float ค่าเฉลี่ยขององค์ประกอบทั้งหมดหรือ 0 หากไม่มีองค์ประกอบในแผนที่
ค่า NULL จะถือเป็น 0 ค่าที่ไม่ใช่ตัวเลขจะทำให้เกิดข้อผิดพลาด
นอกจากนี้ยังใช้ได้กับอาร์เรย์หลายมิติด้วยการส่งคีย์ของอาร์เรย์ที่คั่นด้วยตัวคั่น ("/" ตามค่าเริ่มต้น) เช่น "key1/key2/key3" เพื่อรับ "val" จาก ['key1' => ['key2' => ['key3' => 'val']]]
. เช่นเดียวกับคุณสมบัติสาธารณะของอ็อบเจ็กต์หรืออ็อบเจ็กต์ที่ใช้วิธี __isset()
และ __get()
ตัวอย่าง:
แผนที่::จาก( [1, 3, 5] )->avg();// 3Map::from( [1, null, 5] )->avg();// 3Map::from( [1, 'sum', 5] )->avg();// 2Map::from( [['p' => 30], ['p' => 50], ['p' => 10]] )->เฉลี่ย( 'p' );// 30Map::from( [['i' => ['p' => 30]], ['<sp