الإضافة باستخدام 'array_unshift'
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 12 من 68.
بينما تقوم array_push() بإضافة عناصر إلى نهاية المصفوفة، فإن الدالة array_unshift() تقوم بالعكس—فهي تضيف عنصراً واحداً أو أكثر إلى بداية المصفوفة. تقوم هذه الدالة بتعديل المصفوفة الأصلية مباشرة وتُعيد الطول الجديد للمصفوفة.
إليك الصيغة الأساسية:
<?php
$tasks = ["buy groceries", "do laundry"];
array_unshift($tasks, "urgent meeting");
print_r($tasks); // المخرجات: Array ( [0] => urgent meeting [1] => buy groceries [2] => do laundry )
?>لاحظ كيف يصبح العنصر الجديد في الفهرس 0، وتنتقل جميع العناصر الموجودة إلى فهارس أعلى. تحدث عملية إعادة الفهرسة هذه تلقائيًا—تقوم array_unshift() بتحديث جميع المفاتيح الرقمية للحفاظ على التسلسل الصحيح.
يمكنك أيضاً إضافة عناصر متعددة في وقت واحد:
<?php
$priorities = ["medium task"];
array_unshift($priorities, "high priority", "critical task");
print_r($priorities); // المخرجات: Array ( [0] => high priority [1] => critical task [2] => medium task )
?>تُعد هذه الوظيفة مفيدة بشكل خاص عندما تحتاج إلى تحديد أولويات العناصر في قائمة، مثل إضافة المهام العاجلة إلى أعلى قائمة المهام أو إدراج العناصر ذات الأولوية العالية في مقدمة قائمة الانتظار.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
التحدي
سهلستتلقى مدخلين: مصفوفة أولية من الإشعارات بتنسيق JSON وإشعار عاجل جديد لإضافته. اقرأ كلا المدخلين، وقم بتحويل سلسلة JSON إلى مصفوفة، واستخدم array_unshift() لإضافة الإشعار العاجل إلى بداية المصفوفة، ثم اطبع المصفوفة النهائية باستخدام print_r().
تنسيق الإدخال: سطران - السطر الأول يحتوي على مصفوفة JSON (مثال: ["meeting reminder","email received"])، والسطر الثاني يحتوي على الإشعار العاجل المراد إضافته
المخرجات المتوقعة: المصفوفة بعد إضافة الإشعار العاجل في بدايتها، معروضة باستخدام print_r()
ورقة مرجعية
تقوم الدالة array_unshift() بإضافة عناصر إلى بداية المصفوفة، مما يؤدي إلى تعديل المصفوفة الأصلية وإرجاع طولها الجديد:
<?php
$tasks = ["buy groceries", "do laundry"];
array_unshift($tasks, "urgent meeting");
print_r($tasks); // المخرجات: Array ( [0] => urgent meeting [1] => buy groceries [2] => do laundry )
?>تصبح العناصر الجديدة في الفهرس 0، وتنتقل العناصر الموجودة تلقائياً إلى فهارس أعلى.
يمكنك إضافة عناصر متعددة في وقت واحد:
<?php
$priorities = ["medium task"];
array_unshift($priorities, "high priority", "critical task");
print_r($priorities); // المخرجات: Array ( [0] => high priority [1] => critical task [2] => medium task )
?>جرّب بنفسك
<?php
// قراءة مصفوفة JSON للإشعارات
$jsonInput = fgets(STDIN);
$notifications = (array)json_decode($jsonInput, true);
// قراءة الإشعار العاجل لإضافته
$urgentNotification = trim(fgets(STDIN));
// TODO: اكتب الكود الخاص بك أدناه لإضافة الإشعار العاجل إلى بداية المصفوفة
// طباعة المصفوفة النهائية
print_r($notifications);
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس 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'مراجعة: ترتيب لوحة المتصدرين