الحذف باستخدام 'array_pop'
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 11 من 68.
تقوم الدالة array_pop() بإزالة العنصر الأخير من المصفوفة وإرجاع تلك القيمة المحذوفة. وعلى عكس array_push() التي تضيف عناصر، فإن هذه الدالة تقصر المصفوفة بمقدار عنصر واحد في كل مرة تستخدمها فيها.
إليك كيفية عمل ذلك:
<?php
$tasks = ["wash dishes", "do laundry", "buy groceries"];
$completedTask = array_pop($tasks);
echo $completedTask; // المخرجات: buy groceries
print_r($tasks); // المخرجات: Array ( [0] => wash dishes [1] => do laundry )
?>لاحظ أن array_pop() يقوم بتعديل المصفوفة الأصلية وإرجاع العنصر الذي تمت إزالته في نفس الوقت. وهذا يجعله مثاليًا للسيناريوهات التي تحتاج فيها إلى معالجة العناصر من نهاية القائمة، مثل إكمال المهمة الأخيرة في قائمة المهام أو إزالة أحدث عنصر من المكدس (stack).
إذا حاولت استخدام array_pop() على مصفوفة فارغة، فستقوم بإرجاع null دون التسبب في حدوث خطأ. هذه الدالة مفيدة بشكل خاص عندما تعمل مع المصفوفات كأكداس (stacks)، حيث تقوم بإضافة العناصر إلى النهاية وإزالتها من النهاية بنمط "آخر من يدخل، أول من يخرج" (last in, first out).
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
التحدي
سهلستتلقى مدخلين: مصفوفة أولية من المهام بتنسيق JSON ورقم يشير إلى عدد المهام التي يجب إكمالها. اقرأ كلا المدخلين، وقم بتحويل سلسلة JSON إلى مصفوفة، واستخدم array_pop() لعدد المرات المحدد لإزالة المهام المكتملة من النهاية، واطبع المصفوفة النهائية باستخدام print_r().
تنسيق الإدخال: سطران - السطر الأول يحتوي على مصفوفة JSON (مثال: ["task1","task2","task3"])، والسطر الثاني يحتوي على عدد المهام المطلوب إكمالها (رقم)
المخرجات المتوقعة: المصفوفة بعد إزالة المهام المكتملة، معروضة باستخدام print_r()
ورقة مرجعية
تقوم وظيفة array_pop() بإزالة العنصر الأخير من المصفوفة وإرجاع تلك القيمة المحذوفة:
<?php
$tasks = ["wash dishes", "do laundry", "buy groceries"];
$completedTask = array_pop($tasks);
echo $completedTask; // المخرجات: buy groceries
print_r($tasks); // المخرجات: Array ( [0] => wash dishes [1] => do laundry )
?>نقاط رئيسية:
- تعديل المصفوفة الأصلية عن طريق إزالة العنصر الأخير
- إرجاع العنصر الذي تمت إزالته
- إرجاع
nullإذا تم استخدامها على مصفوفة فارغة (بدون خطأ) - مفيدة لعمليات "آخر من يدخل، أول من يخرج" (المكدس - stack)
جرّب بنفسك
<?php
// قراءة مدخلات مصفوفة JSON
$jsonInput = fgets(STDIN);
$tasks = (array)json_decode($jsonInput, true);
// قراءة عدد المهام المطلوب إكمالها
$numToComplete = intval(fgets(STDIN));
// TODO: اكتب كودك أدناه
// استخدم ()array_pop لإزالة العدد المحدد من المهام
// طباعة المصفوفة النهائية
print_r($tasks);
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
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'مراجعة: ترتيب لوحة المتصدرين