array_replace_recursive ()
array_replace_recursive () เป็นฟังก์ชั่นใน PHP inbuilt ใช้ในการแทนที่ค่าของอาร์เรย์แรกที่มีค่าจากอาร์เรย์ซ้ำต่อไป จะทำการแทนที่ด้านล่างนี้:
- หากคีย์จากอาร์เรย์แรกมีอยู่ในอาร์เรย์ที่สองดังนั้นค่าที่สอดคล้องกับคีย์นั้นของอาร์เรย์แรกจะถูกแทนที่ด้วยค่าของอาร์เรย์ที่สอง
- หากคีย์มีอยู่ในอาเรย์ที่สอง แต่ไม่ได้อยู่ในอาเรย์แรกมันจะถูกสร้างขึ้นในอาเรย์แรก
- หากคีย์มีอยู่ในอาเรย์แรกเท่านั้นมันจะถูกทิ้งไว้ตามที่เป็นอยู่
- หากมีหลายอาร์เรย์ถูกส่งผ่านเพื่อแทนที่พวกเขาจะถูกประมวลผลตามลำดับอาร์เรย์ในภายหลังจะเขียนทับค่าก่อนหน้า
รูปแบบ Syntax ดังนี้
array_replace_recursive ($ array1, $ array2, $ array3 ... )
พารามิเตอร์:ฟังก์ชั่นนี้รับ list ของอาร์เรย์เป็นพารามิเตอร์ที่พารามิเตอร์แรกเป็นหลักและจำเป็นและส่วนที่เหลือเป็นตัวเลือก
Return Value : ส่งคืนอาเรย์ที่ถูกปรับเปลี่ยนหรือ NULL ถ้ามีข้อผิดพลาดเกิดขึ้น
ตัวอย่างโค้ดดังนี้
<?php
// PHP program to illustrate array_replace_recursive()
// function
$array1 = array( "a" => array("red"),
"b" => array("green", "blue"));
$array2=array( "a" => array("yellow"),
"b" => array("black"));
$array3=array("a" => array("orange"),
"b" => array("burgundy"));
print_r(array_replace_recursive($array1, $array2, $array3));
?>
ผลลัพธ์ที่ได้
Array
(
[a] => Array
(
[0] => orange
)
[b] => Array
(
[0] => burgundy
[1] => blue
)
)
จากตัวอย่างเราได้ใช้ฟังก์ชัน print_r() เพื่อแสดงข้อมูลใน array จะเห็นว่า ค่าของตัวแรกแต่ละคีย์ถูกเปลี่ยน โดยจะกลายเป็น อาเรย์ลำดับสุดที่มีอยู่ในฟังก์ชัน ส่วน ค่าอาเรย์บ[1] ในคีย์ของ [b] นั้น ยังเป็น blue เหมือนเดิมเนื่องจากว่า ในฟังก์ชันไม่มีอาเรย์ตัวไหนทีจะมาเขียนทับ เพราะอยู่ในตำแหน่งที่[1] แต่อาเรย์ที่มาใหม่นั้นตำแหน่งที่[0]ทั้งนั้นครับ หวังจะเข้าใจน่ะครับ