الحذف باستخدام 'array_shift'
جزء من قسم المنطق وتدفق التنفيذ في رحلة PHP على Coddy. الدرس 13 من 68.
تزيل الدالة array_shift() العنصر الأول من مصفوفة وتُرجع تلك القيمة المُزالة. وهذا عكس الدالة array_unshift()، التي تضيف عناصر إلى بداية المصفوفة.
إليك كيفية عمل ذلك:
<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson; // المخرجات: Alice
print_r($queue); // Outputs: Array ( [0] => Bob [1] => Charlie )
?>لاحظ أن array_shift() تعدّل المصفوفة الأصلية وتُرجع العنصر المُزال في الوقت نفسه. بعد إزالة العنصر الأول، تنتقل جميع العناصر المتبقية تلقائيًا إلى الأسفل لملء الفراغ: ينتقل "Bob" من الفهرس 1 إلى الفهرس 0، وينتقل "Charlie" من الفهرس 2 إلى الفهرس 1.
تحدث إعادة الفهرسة هذه تلقائيًا، مما يضمن حفاظ مصفوفتك على تسلسل رقمي صحيح. إذا استخدمت array_shift() على مصفوفة فارغة، فستُرجع null من دون التسبب في حدوث خطأ.
تُعدّ هذه الدالة مفيدة بشكل خاص لتنفيذ طوابير الانتظار، حيث تعالج items بترتيب "الوارد أولًا، الصادر أولًا"، مثل التعامل مع customers في line أو معالجة tasks بالترتيب الذي استُلِمت به.
التحدي
سهلستتلقى مُدخلين: مصفوفة أولية من العملاء المنتظرين في الطابور بتنسيق JSON، ورقمًا يحدد عدد العملاء المطلوب خدمتهم. اقرأ كلا المُدخلين، وحوّل سلسلة JSON إلى مصفوفة، واستخدم array_shift() العدد المحدد من المرات لإزالة العملاء الذين تمت خدمتهم من مقدمة الطابور، ثم اطبع المصفوفة النهائية باستخدام print_r().
تنسيق الإدخال: سطران - يحتوي السطر الأول على مصفوفة JSON (مثال: ["Alice","Bob","Charlie","Diana"])، ويحتوي السطر الثاني على عدد العملاء المطلوب خدمتهم (رقم)
الإخراج المتوقع: المصفوفة بعد إزالة العملاء الذين تمت خدمتهم من المقدمة، معروضة باستخدام print_r()
جرّب بنفسك
<?php
// اقرأ مصفوفة JSON للعملاء
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);
// اقرأ عدد العملاء المطلوب خدمتهم
$numToServe = intval(fgets(STDIN));
// TODO: اكتب الكود الخاص بك أدناه
// استخدم array_shift() لإزالة العملاء من مقدمة الطابور
// اطبع المصفوفة النهائية
print_r($customers);
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1الدوال المتقدمة
الدوال المجهولةالـ Closures وكلمة 'use'دوال السهمدوال الـ Callbackاستخدام 'call_user_func'دوال المتغيراتالتمرير بالمرجعالدوال العوديةمراجعة: مزيج الدوال4المصفوفات متعددة الأبعاد
إنشاء مصفوفة ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادتعديل عناصر المصفوفة ثنائية الأبعادالتكرار باستخدام الحلقات المتداخلةالمصفوفات الترابطية ثنائية الأبعادمراجعة: تمرين الشبكة البسيطة2معالجة المصفوفات المتقدمة
الإضافة باستخدام 'array_push'الحذف باستخدام 'array_pop'الإضافة باستخدام 'array_unshift'الحذف باستخدام 'array_shift'دمج المصفوفات المفهرسةدمج المصفوفات الترابطيةالاستخراج باستخدام 'array_slice'القيم باستخدام 'in_array'المفاتيح باستخدام 'array_search'مراجعة: تمرين قائمة التشغيل3ترتيب المصفوفات
ترتيب المصفوفات المفهرسة تصاعدياًترتيب المصفوفات المفهرسة تنازلياًترتيب المصفوفات الترابطية حسب القيمةترتيب المصفوفات الترابطية حسب المفتاحالترتيب بالترتيب الطبيعيالترتيب المخصص باستخدام 'usort'مراجعة: ترتيب لوحة المتصدرينتدرّب بنفسك: مترجم PHP عبر الإنترنت