الفرق بين المراجعتين لصفحة: «PHP/array replace recursive»

من موسوعة حسوب
< PHP
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:<code>array_replace_recursive()‎</code>}}</noinclude> (PHP 5 >= 5.3.0, PHP 7) تستبدل الدالة <code>array_replace_recursive()</cod...'
 
لا ملخص تعديل
سطر 28: سطر 28:


== أمثلة ==
== أمثلة ==
المثال 1: مثال على الدالة array_replace_recursive()‎<syntaxhighlight lang="php">
المثال 1: مثال على الدالة <code>array_replace_recursive()‎</code><syntaxhighlight lang="php">
<?php
<?php
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
سطر 67: سطر 67:


)
)
</syntaxhighlight>المثال 2: مثال على الدالة array_replace_recursive()‎ والسلوك التكراري<syntaxhighlight lang="php">
</syntaxhighlight>المثال 2: مثال على الدالة <code>array_replace_recursive()‎</code> والسلوك التكراري<syntaxhighlight lang="php">
<?php
<?php
$base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
$base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
سطر 100: سطر 100:


== مصادر ==
== مصادر ==
* [http://php.net/manual/en/function.array-replace-recursive.php صفحة الدالة <code>array_replace_recursive()‎</code> في توثيق PHP الرسمي].
* [http://php.net/manual/en/function.array-replace-recursive.php صفحة الدالة array_replace_recursive في توثيق PHP الرسمي].
[[تصنيف:PHP]]
[[تصنيف:PHP]]
[[تصنيف:PHP Function]]
[[تصنيف:PHP Function]]
[[تصنيف:PHP Array]]
[[تصنيف:PHP Array]]

مراجعة 03:09، 21 مارس 2018

(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).

مصادر