الدالة each() في PHP
(PHP 4, PHP 5, PHP 7)
تُعيد الدالة each() كلًا من المفتاح والقيمة المقابلة الحاليين من المصفوفة وتُحرك مؤشرها للأمام.
تحذير: أُلغيت هذه الدالة اعتبارًا من PHP 7.2.0. الاعتماد على هذه الدالة غير محبذ على الإطلاق.
الوصف
array each ( array &$array )
تُعيد هذه الدالة كلًا من المفتاح والقيمة الحاليْيَن من مصفوفة وتُحرك مؤشر المصفوفة للأمام.
بعد تنفيذ الدالة each()، سيُترك مؤشر المصفوفة على العنصر التالي، أو بعد العنصر الأخير إذا كان قد وصل إلى نهاية المصفوفة. إذا كنت تريد المرور على المصفوفة مرة أخرى باستخدام each()، يجب عليك استخدام الدالة reset() أولًا.
المعاملات
array
المصفوفة المُدخَلة.
القيم المعادة
تُعيد هذه الدالة كلًا من المفتاح والقيمة الحاليْيَن من المصفوفة array. وتُعيد هذا الزوج على هيئة مصفوفة مكونة من أربعة عناصر، باستخدام المفاتيح 0 و 1 و key وvalue . تحتوي العناصر 0 و key على اسم المفتاح لعنصر المصفوفة، بينما تحتوي العناصر 1 وvalue على البيانات.
إذا تخطى المؤشر الداخلي نهاية محتويات المصفوفة، فستُعيد الدالة each() القيمة FALSE.
أمثلة
المثال 1: أمثلة على الدالة each()
<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>
يحتوي المتغير bar$ الآن على أزواج المفاتيح والقيم التالية:
Array
(
[1] => bob
[value] => bob
[0] => 0
[key] => 0
)
<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>
يحتوي المتغير bar$ الآن على أزواج المفاتيح والقيم التالية:
Array
(
[1] => Bob
[value] => Bob
[0] => Robert
[key] => Robert
)
تستخدم الدالة each() عادة بالتزامن مع الدالة list() للمرور بالمصفوفة، وإليك مثالٌ على ذلك:
المثال 2: مثال على المرور بمصفوفة باستخدام الدالة each()
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>
سوف تكون مُخرجات المثال أعلاه كالتالي:
a => apple
b => banana
c => cranberry
تنبيه: نظرًا لأن تعيين مصفوفة إلى متغير آخر يعيد تعيين مؤشر المصفوفة الأصلي، فإن المثال السابق قد يتسبب في حدوث حلقة لا نهائية لو قمنا بتعيين fruit$ إلى متغير آخر داخل الحلقة.
تحذير: تقبل الدالة each() أيضًا الكائنات، ولكن قد تعرض نتائج غير متوقعة. لذلك لا يُنصح بالمرور على خصائص الكائن مع الدالة each().
انظر أيضًا
- الدالة
key(): جلب مفتاح من مصفوفة. - الدالة
list(): بتعيين المتغيرات كما لو كانت مصفوفة. - الدالة
current(): إعادة العنصر الحالي في مصفوفة. - الدالة
reset(): تحريك المؤشر الداخلي لمصفوفة إلى أول عنصر. - الدالة
next(): تحريك المؤشر الداخلي لمصفوفة إلى الأمام. - الدالة
prev(): إرجاع مؤشر المصفوفة الداخلي إلى الخلف. - حلقة
foreach. Object Iteration.