الفرق بين المراجعتين لصفحة: «PHP/array replace»
< PHP
ط حذف سطر فارغ |
لا ملخص تعديل |
||
سطر 2: | سطر 2: | ||
(PHP 4 >= 4.0.5, PHP 5, PHP 7) | (PHP 4 >= 4.0.5, PHP 5, PHP 7) | ||
تختزل الدالة array_reduce() المصفوفة إلى قيمة واحدة باستخدام دالة مُعرَّفة من المستخدم callback. | تختزل الدالة <code>array_reduce()</code> المصفوفة إلى قيمة واحدة باستخدام دالة مُعرَّفة من المستخدم [[PHP/Types/callable|callback]]. | ||
== الوصف == | == الوصف == | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] ) | mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] ) | ||
</syntaxhighlight>تطبق الدالة array_reduce() | </syntaxhighlight>تطبق الدالة <code>array_reduce()</code> بشكل تكراري دالة <code>[[PHP/Types/callable|callback]]</code> على عناصر <code>array</code>، وذلك لاختزال المصفوفة إلى قيمة واحدة. | ||
== المعاملات == | == المعاملات == | ||
سطر 19: | سطر 19: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== <code>carry</code> === | ==== <code>carry</code> ==== | ||
يحتفظ بالقيمة المُعادة من التكرار السابق؛ ويحمل قيمة <code>initial</code> في حالة التكرار الأول. | يحتفظ بالقيمة المُعادة من التكرار السابق؛ ويحمل قيمة <code>initial</code> في حالة التكرار الأول. | ||
=== <code>item</code> === | ==== <code>item</code> ==== | ||
يحمل قيمة التكرار الحالي. | يحمل قيمة التكرار الحالي. | ||
سطر 31: | سطر 31: | ||
تُعيد القيمة الناتجة. | تُعيد القيمة الناتجة. | ||
تُعيد الدالة array_reduce() | تُعيد الدالة <code>array_reduce()</code> القيمة <code>NULL</code> إذا كانت المصفوفة فارغة ولم يمرر المعامل <code>initial</code>. | ||
== سجل التغييرات == | == سجل التغييرات == | ||
{| class="wikitable" | {| class="wikitable" | ||
!الإصدار | |||
!الوصف | |||
|- | |- | ||
|5.3.0 | |5.3.0 | ||
سطر 43: | سطر 43: | ||
== أمثلة == | == أمثلة == | ||
المثال 1: مثال على الدالة array_reduce()<syntaxhighlight lang="php"> | المثال 1: مثال على الدالة <code>array_reduce()</code><syntaxhighlight lang="php"> | ||
<?php | <?php | ||
function sum($carry, $item) | function sum($carry, $item) | ||
سطر 65: | سطر 65: | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* الدالة [[PHP/Function/array-filter|array_filter()]]: ترشيح عناصر مصفوفة باستخدام دالة callback. | * الدالة <code>[[PHP/Function/array-filter|array_filter()]]</code>: ترشيح عناصر مصفوفة باستخدام دالة callback. | ||
* الدالة [[PHP/Function/array-map|array_map()]]: تطبيق دالة callback على عناصر المصفوفات المحددة. | * الدالة <code>[[PHP/Function/array-map|array_map()]]</code>: تطبيق دالة callback على عناصر المصفوفات المحددة. | ||
* الدالة [[PHP/Function/array-unique|array_unique()]]: إزالة القيم المكررة من المصفوفة. | * الدالة <code>[[PHP/Function/array-unique|array_unique()]]</code>: إزالة القيم المكررة من المصفوفة. | ||
* الدالة [[PHP/Function/array-count-values|array_count_values()]]: حساب جميع قيم عناصر المصفوفة. | * الدالة <code>[[PHP/Function/array-count-values|array_count_values()]]</code>: حساب جميع قيم عناصر المصفوفة. | ||
== مصادر == | == مصادر == |
مراجعة 05:39، 17 مارس 2018
(PHP 4 >= 4.0.5, PHP 5, PHP 7)
تختزل الدالة array_reduce()
المصفوفة إلى قيمة واحدة باستخدام دالة مُعرَّفة من المستخدم callback.
الوصف
mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
تطبق الدالة array_reduce()
بشكل تكراري دالة callback
على عناصر array
، وذلك لاختزال المصفوفة إلى قيمة واحدة.
المعاملات
array
المصفوفة المُدخلة.
callback
mixed callback ( mixed $carry , mixed $item )
carry
يحتفظ بالقيمة المُعادة من التكرار السابق؛ ويحمل قيمة initial
في حالة التكرار الأول.
item
يحمل قيمة التكرار الحالي.
initial
تستخدم initial
الاختيارية في بداية العملية إذا كانت متاحة، أو كنتيجة نهائية في حالة إذا كانت المصفوفة فارغة.
القيم المعادة
تُعيد القيمة الناتجة.
تُعيد الدالة array_reduce()
القيمة NULL
إذا كانت المصفوفة فارغة ولم يمرر المعامل initial
.
سجل التغييرات
الإصدار | الوصف |
---|---|
5.3.0 | تغيير initial للسماح بالنوع المختلط mixed ، والذي كان عدد صحيح integer في وقت سابق.
|
أمثلة
المثال 1: مثال على الدالة array_reduce()
<?php
function sum($carry, $item)
{
$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"
?>
انظر أيضًا
- الدالة
array_filter()
: ترشيح عناصر مصفوفة باستخدام دالة callback. - الدالة
array_map()
: تطبيق دالة callback على عناصر المصفوفات المحددة. - الدالة
array_unique()
: إزالة القيم المكررة من المصفوفة. - الدالة
array_count_values()
: حساب جميع قيم عناصر المصفوفة.