array_replace_recursive()‎

من موسوعة حسوب
< PHP

(PHP 5 >= 5.3.0, PHP 7)

تستبدل الدالة array_replace_recursive()‎ عناصر المصفوفات المُمررة إلى المصفوفة الأولى بشكل متكرر.

الوصف

array array_replace_recursive ( array $array1 , array $array2 [, array $... ])

تستبدل الدالة array_replace_recursive()‎ قيم array1 بنفس القيم من كل المصفوفات التالية. في حالة وجود مفتاح من المصفوفة الأولى في المصفوفة الثانية، فستُستبدل قيمته بقيمة المفتاح المقابل من المصفوفة الثانية. إذا كان المفتاح موجودًا في المصفوفة الثانية، وغير موجود في الأولى، فسيُنشأ في المصفوفة الأولى. إذا كان هناك مفتاح موجود فقط في المصفوفة الأولى، فسيُترك كما هو. إذا مررنا عدة مصفوفات لاستبدال، فستُعالج بالترتيب، وتكتب المصفوفة الأحدث فوق القيم السابقة.

الدالة array_replace_recursive()‎ دالة تكرارية: فهي تكرر التعامل مع المصفوفات وتطبق نفس العملية على القيمة الداخلية.

عندما تكون القيمة في array1 أوليّة (scalar) فستُستبدل بالقيمة في array2 التي قد تكون أوليةً أو مصفوفةً. وعندما تكون كلًا من القيمة في array1 و array2 مصفوفات، فستستبدل array_replace_recursive()‎ قيمتهما تكراريًا (recursively).

المعاملات

array1

المصفوفة التي يُستبدل العناصر فيها.

array2

المصفوفة التي يُستخرج منها العناصر.

...

اختياري. المزيد من المصفوفات التي يُستخرج منها العناصر.

القيم المعادة

إرجاع مصفوفة، أو القيمة NULL في حالة حدوث خطأ.

أمثلة

المثال 1: مثال على الدالة array_replace_recursive()‎

<?php
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));

$basket = array_replace_recursive($base, $replacements);
print_r($basket);

$basket = array_replace($base, $replacements);
print_r($basket);
?>

سوف تكون مُخرجات المثال أعلاه كالتالي:

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

)
Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
        )

)

المثال 2: مثال على الدالة array_replace_recursive()‎ والسلوك التكراري

<?php
$base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
$replacements = array('citrus' => 'pineapple', 'berries' => array('blueberry'), 'others' => array('litchis'));
$replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis');

$basket = array_replace_recursive($base, $replacements, $replacements2);
print_r($basket);

?>

سوف تكون مُخرجات المثال أعلاه كالتالي:

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

    [others] => litchis
)

انظر أيضًا

  • array_replace()‎: استبدال عناصر المصفوفات المُمررة إلى المصفوفة الأولى.
  • array_merge_recursive()‎: دمج مصفوفتين أو أكثر بشكل تكراري (recursively).

مصادر