الفرق بين المراجعتين ل"PHP/array replace"

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
(إدخال أول مرة)
 
ط (نقل عبد اللطيف ايمش صفحة PHP/Function/array-replace إلى PHP/array replace: إعادة هيكلة التوثيق)
 
(13 مراجعة متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
 +
<noinclude>{{DISPLAYTITLE:array_replace()‎}}</noinclude>
 +
(PHP 5 >= 5.3.0, PHP 7)
  
= الدالة array_reduce()‎ =
+
تستبدل الدالة <code>array_replace()‎</code> عناصر المصفوفات المُمررة إلى داخل المصفوفة الأولى.
(PHP 4 >= 4.0.5, PHP 5, PHP 7)
 
  
تختزل الدالة array_reduce المصفوفة إلى قيمة واحدة باستخدام دالة مُعرَّفة من المستخدم callback.
+
== الوصف ==
 +
<syntaxhighlight lang="php">
 +
array array_replace ( array $array1 , array $array2 [, array $... ] )
 +
</syntaxhighlight>تستبدل الدالة <code>array_replace()</code>‎ قيم المصفوفة <code>array1</code> بقيم لها نفس المفاتيح في كل من المصفوفات التالية. في حالة وجود مفتاح من المصفوفة الأولى في المصفوفة الثانية، تُستبدل قيمته بقيمة المفتاح المقابل من المصفوفة الثانية. وإذا كان المفتاح موجود في المصفوفة الثانية، وغير موجود في الأولى، فسيُنشأ في المصفوفة الأولى. أما إذا كان هناك مفتاح موجود في المصفوفة الأولى فقط، فسيُترك كما هو. في حالة تمرير عدة مصفوفات للاستبدال، فستعالج بالترتيب، وتكتب المصفوفات اللاحقة فوق القيم السابقة.
  
=== الوصف ===
+
الدالة <code>array_replace()‎</code> غير تكرارية (recursive): سوف تستبدل القيم في المصفوفة الأولى بأي نوع موجود في المصفوفة الثانية.
mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
 
  
تطبق الدالة array_reduce()‎ بشكل تكراري دالة callback على عناصر array، وذلك لاختزال المصفوفة إلى قيمة واحدة.
+
== المعاملات ==
  
=== المعاملات ===
+
=== <code>array1</code> ===
array
+
المصفوفة التي يُستبدل العناصر فيها.
  
المصفوفة المُدخلة.
+
=== <code>array2</code> ===
 +
المصفوفة التي يُستخرج منها العناصر.
  
callback
+
=== <code>...</code> ===
 +
المزيد من المصفوفات التي يُستخرج منها العناصر. وتُكتب القيم من المصفوفات اللاحقة فوق القيم السابقة.
  
mixed callback ( mixed $carry , mixed $item )
+
== القيم المُعادة ==
 
+
تعيد الدالة مصفوفة، أو القيمة <code>NULL</code> في حالة حدوث خطأ.
carry
 
 
 
يحتفظ بالقيمة المُعادة من التكرار السابق؛ ويحمل قيمة initial في حالة التكرار الأول.
 
 
 
item
 
 
 
يحمل قيمة التكرار الحالي.
 
 
 
initial
 
 
 
تستخدم initial الاختيارية في بداية العملية إذا كانت متاحة، أو كنتيجة نهائية في حالة إذا كانت المصفوفة فارغة.
 
 
 
=== القيم المعادة ===
 
تُعيد القيمة الناتجة.
 
 
 
تُعيد الدالة array_reduce()‎ القيمة NULL إذا كانت المصفوفة فارغة ولم يمرر المعامل initial.
 
 
 
=== سجل التغييرات ===
 
{| class="wikitable"
 
|الإصدار
 
|الوصف
 
|-
 
|5.3.0
 
|تغيير initial للسماح بالنوع المختلط mixed، والذي كان عدد صحيح integer في وقت سابق.
 
|}
 
 
 
=== أمثلة ===
 
المثال 1: مثال على الدالة array_reduce()‎
 
  
 +
== أمثلة ==
 +
المثال 1: مثال على الدالة <code>array_replace()‎</code><syntaxhighlight lang="php">
 
<?php
 
<?php
 
+
$base = array("orange", "banana", "apple", "raspberry");
function sum($carry, $item)
+
$replacements = array(0 => "pineapple", 4 => "cherry");
 
+
$replacements2 = array(0 => "grape");
{
+
$basket = array_replace($base, $replacements, $replacements2);
 
+
print_r($basket);
   $carry += $item;
 
 
 
   return $carry;
 
 
 
}
 
 
 
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>
  
=== انظر أيضًا ===
+
== انظر أيضًا ==
* [[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()‎: دمج مصفوفة أو أكثر.

مصادر