ฟังก์ชัน array_reduce() ใช้ลดรูปอาร์เรย์ให้กลายเป็นค่าเดียว (single value) โดยใช้ฟังก์ชันที่ผู้ใช้กำหนดเอง (callback) ประมวลผลทีละคู่
ไวยากรณ์ (Syntax)
array_reduce(array, custom_func, initial)
พารามิเตอร์ (Parameters)
array − อาร์เรย์ที่ต้องการลดรูป (จำเป็น)
custom_func − ฟังก์ชัน callback ที่รับพารามิเตอร์ 2 ตัว (carry, item) (จำเป็น)
initial − ค่าเริ่มต้นสำหรับ carry (ตัวเลือก)
ค่าที่ส่งคืน (Return Value)
ส่งคืนค่าผลลัพธ์หลังลดรูป ส่งคืน NULL หากอาร์เรย์ว่างและไม่มี initial
ตัวอย่างการใช้งาน
ตัวอย่างที่ 1: รวมสตริงด้วย callback
<?php
function display($a1, $a2) {
return $a1 . " DEMO " . $a2;
}
$a = array("One", "Two");
print_r(array_reduce($a, "display", 2));
?>
ผลลัพธ์
2 DEMO One DEMO Two
ตัวอย่างที่ 2: คำนวณผลรวมพร้อมค่าเริ่มต้น
<?php
function display($a1, $a2) {
return $a1 + $a2;
}
$arr = array(50, 100, 150, 200, 250);
print_r(array_reduce($arr, "display", 500));
?>
ผลลัพธ์
1250