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

من موسوعة حسوب
< PHP
ط تعديل التنسيق
ط نقل عبد اللطيف ايمش صفحة PHP/Function/array-replace إلى PHP/array replace: إعادة هيكلة التوثيق
 
(12 مراجعة متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 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">
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، وذلك لاختزال المصفوفة إلى قيمة واحدة.


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


=== array ===
=== <code>array1</code> ===
المصفوفة المُدخلة.
المصفوفة التي يُستبدل العناصر فيها.
 
=== callback ===
mixed callback ( mixed $carry , mixed $item )
 
=== carry ===
يحتفظ بالقيمة المُعادة من التكرار السابق؛ ويحمل قيمة initial في حالة التكرار الأول.


=== item ===
=== <code>array2</code> ===
يحمل قيمة التكرار الحالي.
المصفوفة التي يُستخرج منها العناصر.


=== initial ===
=== <code>...</code> ===
تستخدم initial الاختيارية في بداية العملية إذا كانت متاحة، أو كنتيجة نهائية في حالة إذا كانت المصفوفة فارغة.
المزيد من المصفوفات التي يُستخرج منها العناصر. وتُكتب القيم من المصفوفات اللاحقة فوق القيم السابقة.


== القيم المعادة ==
== القيم المُعادة ==
تُعيد القيمة الناتجة.
تعيد الدالة مصفوفة، أو القيمة <code>NULL</code> في حالة حدوث خطأ.
 
تُعيد الدالة 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;
?>
 
</syntaxhighlight>سوف تكون مُخرجات المثال أعلاه كالتالي:<syntaxhighlight lang="php">
   return $carry;
Array
 
(
}
    [0] => grape
 
    [1] => banana
function product($carry, $item)
    [2] => apple
 
    [3] => raspberry
{
    [4] => cherry
 
)
   $carry *= $item;
</syntaxhighlight>
 
   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"
 
?>


انظر أيضًا
== انظر أيضًا ==
* [[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()‎: دمج مصفوفة أو أكثر.

مصادر