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

من موسوعة حسوب
< PHP
ط إعادة تنسيق
ط نقل عبد اللطيف ايمش صفحة PHP/Function/array-replace إلى PHP/array replace: إعادة هيكلة التوثيق
 
(11 مراجعة متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:array_replace()‎}}</noinclude>
(PHP 5 >= 5.3.0, PHP 7)


(PHP 4 >= 4.0.5, PHP 5, PHP 7)
تستبدل الدالة <code>array_replace()‎</code> عناصر المصفوفات المُمررة إلى داخل المصفوفة الأولى.
 
تختزل الدالة array_reduce المصفوفة إلى قيمة واحدة باستخدام دالة مُعرَّفة من المستخدم callback.


== الوصف ==
== الوصف ==
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
array array_replace ( array $array1 , array $array2 [, array $... ] )
</syntaxhighlight>تطبق الدالة array_reduce()‎ بشكل تكراري دالة callback على عناصر array، وذلك لاختزال المصفوفة إلى قيمة واحدة.
</syntaxhighlight>تستبدل الدالة <code>array_replace()</code>قيم المصفوفة <code>array1</code> بقيم لها نفس المفاتيح في كل من المصفوفات التالية. في حالة وجود مفتاح من المصفوفة الأولى في المصفوفة الثانية، تُستبدل قيمته بقيمة المفتاح المقابل من المصفوفة الثانية. وإذا كان المفتاح موجود في المصفوفة الثانية، وغير موجود في الأولى، فسيُنشأ في المصفوفة الأولى. أما إذا كان هناك مفتاح موجود في المصفوفة الأولى فقط، فسيُترك كما هو. في حالة تمرير عدة مصفوفات للاستبدال، فستعالج بالترتيب، وتكتب المصفوفات اللاحقة فوق القيم السابقة.
 
الدالة <code>array_replace()‎</code> غير تكرارية (recursive): سوف تستبدل القيم في المصفوفة الأولى بأي نوع موجود في المصفوفة الثانية.


== المعاملات ==
== المعاملات ==


=== array ===
=== <code>array1</code> ===
المصفوفة المُدخلة.
المصفوفة التي يُستبدل العناصر فيها.


=== callback ===
=== <code>array2</code> ===
<syntaxhighlight lang="php">
المصفوفة التي يُستخرج منها العناصر.
mixed callback ( mixed $carry , mixed $item )
</syntaxhighlight>


=== carry ===
=== <code>...</code> ===
يحتفظ بالقيمة المُعادة من التكرار السابق؛ ويحمل قيمة initial في حالة التكرار الأول.
المزيد من المصفوفات التي يُستخرج منها العناصر. وتُكتب القيم من المصفوفات اللاحقة فوق القيم السابقة.


=== item ===
== القيم المُعادة ==
يحمل قيمة التكرار الحالي.
تعيد الدالة مصفوفة، أو القيمة <code>NULL</code> في حالة حدوث خطأ.
 
=== initial ===
تستخدم initial الاختيارية في بداية العملية إذا كانت متاحة، أو كنتيجة نهائية في حالة إذا كانت المصفوفة فارغة.
 
== القيم المعادة ==
تُعيد القيمة الناتجة.
 
تُعيد الدالة array_reduce()‎ القيمة NULL إذا كانت المصفوفة فارغة ولم يمرر المعامل initial.
 
== سجل التغييرات ==
{| class="wikitable"
|الإصدار
|الوصف
|-
|5.3.0
|تغيير initial للسماح بالنوع المختلط mixed، والذي كان عدد صحيح integer في وقت سابق.
|}


== أمثلة ==
== أمثلة ==
المثال 1: مثال على الدالة array_reduce()‎<syntaxhighlight lang="php">
المثال 1: مثال على الدالة <code>array_replace()‎</code><syntaxhighlight lang="php">
<?php
<?php
function sum($carry, $item)
$base = array("orange", "banana", "apple", "raspberry");
{
$replacements = array(0 => "pineapple", 4 => "cherry");
   $carry += $item;
$replacements2 = array(0 => "grape");
   return $carry;
$basket = array_replace($base, $replacements, $replacements2);
}
print_r($basket);
function product($carry, $item)
{
   $carry *= $item;
   return $carry;
}
$a = array(1, 2, 3, 4, 5);
$x = array();
var_dump(array_reduce($a, "sum")); // int(15)
var_dump(array_reduce($a, "product", 10)); // int(1200), لأنَّ: 10*1*2*3*4*5
var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce"
?>
?>
 
</syntaxhighlight>سوف تكون مُخرجات المثال أعلاه كالتالي:<syntaxhighlight lang="php">
Array
(
    [0] => grape
    [1] => banana
    [2] => apple
    [3] => raspberry
    [4] => cherry
)
</syntaxhighlight>
</syntaxhighlight>


== انظر أيضًا ==
== انظر أيضًا ==
* الدالة [[PHP/Function/array-filter|array_filter()]]‎: ترشيح عناصر مصفوفة باستخدام دالة callback.
* <code>[[PHP/array_replace_recursive|array_replace_recursive()]]</code>‎: استبدال عناصر المصفوفات المُمررة إلى المصفوفة الأولى تكراريًا (recursively).
* الدالة [[PHP/Function/array-map|array_map()‎]]: تطبيق دالة callback على عناصر المصفوفات المحددة.
* <code>[[PHP/array_merge|array_merge()]]</code>‎: دمج مصفوفة أو أكثر.
* الدالة [[PHP/Function/array-unique|array_unique()]]‎: إزالة القيم المكررة من المصفوفة.
* الدالة [[PHP/Function/array-count-values|array_count_values​​()]]: حساب جميع قيم عناصر المصفوفة.


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

المراجعة الحالية بتاريخ 03:49، 4 أبريل 2018

(PHP 5 >= 5.3.0, PHP 7)

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

الوصف

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

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

الدالة array_replace()‎ غير تكرارية (recursive): سوف تستبدل القيم في المصفوفة الأولى بأي نوع موجود في المصفوفة الثانية.

المعاملات

array1

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

array2

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

...

المزيد من المصفوفات التي يُستخرج منها العناصر. وتُكتب القيم من المصفوفات اللاحقة فوق القيم السابقة.

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

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

أمثلة

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

<?php
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");
$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);
?>

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

Array
(
    [0] => grape
    [1] => banana
    [2] => apple
    [3] => raspberry
    [4] => cherry
)

انظر أيضًا

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

مصادر