فونکشن array_replace_recursive() در PHP
مثال
به صورت مرتبهای از مقادیر دومین آرایه ($a2) برای جایگزینی مقادیر اولین آرایه ($a1) استفاده میکند:
<?php $a1=array("a"=>array("red"),"b"=>array("green","blue"),); $a2=array("a"=>array("yellow"),"b"=>array("black")); print_r(array_replace_recursive($a1,$a2)); ?>
تعریف و استفاده
فونکشن array_replace_recursive() به صورت مرتبهای از مقادیر آرایههای بعدی برای جایگزینی مقادیر آرایههای اولیه استفاده میکند.
توضیحات:میتوانید یک آرایه یا چندین آرایه به فونکشن بفرستید.
اگر یک کلید در اولین آرایه array1 همچنین در دومین آرایه نیز وجود دارد array2در اولین آرایه array1 مقادیر آن جایگزین خواهند شد. array2 اگر یک کلید در دومین آرایه array1، بدون تغییر باقی خواهد ماند. array2، اما در اولین آرایه وجود ندارد array1، اما در اولین آرایه array1 در میان ایجاد این عنصر. اگر چندین آرایه جایگزین ارسال شوند، آنها به ترتیب مراحل قرار خواهند گرفت و مقادیر آرایههای بعدی مقادیر آرایههای قبلی را پوشش خواهند داد.
توضیحات:اگر برای هر آرایهای یک کلید تعیین نشده باشد، رفتار این فونکشن مشابه با array_replace() فونکشن.
زبان
array_replace_recursive(array1,array2,array3...)
پارامترها | توضیح |
---|---|
array1 | لازم. آرایهای مشخص کنید |
array2 | اختیاری. آرایهای برای جایگزینی مشخص کنید array1 آرایهای از مقادیر برای جایگزینی مشخص کنید |
array3,... | اختیاری. چندین آرایه برای جایگزینی مشخص کنید array1 و array2آرایهای از مقادیر ... است. مقادیر آرایههای بعدی مقادیر آرایههای قبلی را پوشش میدهند. |
جزئیات فنی
مقدار بازگشتی: | آرایهای که جایگزین شده را برمیگرداند، در صورت بروز خطا NULL برمیگرداند. |
نسخه PHP: | 5.3.0+ |
مثالهای بیشتر
مثال 1
چندین آرایه:
<?php $a1=array("a"=>array("red"),"b"=>array("green","blue")); $a2=array("a"=>array("yellow"),"b"=>array("black")); $a3=array("a"=>array("orange"),"b"=>array("burgundy")); print_r(array_replace_recursive($a1,$a2,$a3)); ?>
مثال 2
تفاوت array_replace() و array_replace_recursive():
<?php $a1=array("a"=>array("red"),"b"=>array("green","blue"),); $a2=array("a"=>array("yellow"),"b"=>array("black")); $result=array_replace_recursive($a1,$a2); print_r($result); $result=array_replace($a1,$a2); print_r($result); ?>