الدالة 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
.