Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الحذف باستخدام 'array_shift'

جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 13 من 68.

تقوم الدالة array_shift() بإزالة العنصر الأول من المصفوفة وتُعيد تلك القيمة المحذوفة. وهذا هو عكس الدالة array_unshift()، التي تضيف عناصر إلى بداية المصفوفة.

إليك كيفية عمل ذلك:

<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson;  // المخرجات: Alice
print_r($queue);    // المخرجات: Array ( [0] => Bob [1] => Charlie )
?>

لاحظ أن array_shift() تقوم بتعديل المصفوفة الأصلية وإرجاع العنصر الذي تمت إزالته معاً. بعد إزالة العنصر الأول، تنتقل جميع العناصر المتبقية تلقائياً للأسفل لملء الفجوة—ينتقل "Bob" من الفهرس 1 إلى الفهرس 0، وينتقل "Charlie" من الفهرس 2 إلى الفهرس 1.

تحدث عملية إعادة الفهرسة هذه تلقائياً، مما يضمن احتفاظ مصفوفتك بتسلسل رقمي صحيح. إذا استخدمت array_shift() على مصفوفة فارغة، فإنها تعيد null دون التسبب في خطأ.

هذه الوظيفة مفيدة بشكل خاص لتنفيذ الطوابير (queues)، حيث تقوم بمعالجة العناصر بترتيب "الأول دخولاً، الأول خروجاً" (first in, first out) — مثل التعامل مع العملاء في طابور أو معالجة المهام بالترتيب الذي تم استلامها به.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

challenge icon

التحدي

سهل

ستتلقى مدخلين: مصفوفة أولية للعملاء الذين ينتظرون في الطابور بتنسيق JSON ورقم يشير إلى عدد العملاء الذين سيتم خدمتهم. اقرأ كلا المدخلين، وقم بتحويل سلسلة JSON إلى مصفوفة، واستخدم array_shift() لعدد المرات المحدد لإزالة العملاء الذين تمت خدمتهم من مقدمة الطابور، واطبع المصفوفة النهائية باستخدام print_r().

تنسيق الإدخال: سطران - السطر الأول يحتوي على مصفوفة JSON (مثال: ["Alice","Bob","Charlie","Diana"])، والسطر الثاني يحتوي على عدد العملاء الذين سيتم خدمتهم (رقم)

المخرجات المتوقعة: المصفوفة بعد إزالة العملاء الذين تمت خدمتهم من المقدمة، معروضة باستخدام print_r()

ورقة مرجعية

تقوم الدالة array_shift() بإزالة العنصر الأول من المصفوفة وإرجاع تلك القيمة المحذوفة:

<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson;  // المخرجات: Alice
print_r($queue);    // المخرجات: Array ( [0] => Bob [1] => Charlie )
?>

نقاط رئيسية:

  • تعدل المصفوفة الأصلية وتعيد العنصر المحذوف
  • تتم إعادة فهرسة العناصر المتبقية تلقائياً (تزاح للأسفل)
  • تعيد null إذا تم استخدامها على مصفوفة فارغة
  • مفيدة لتنفيذ طوابير "الداخل أولاً، يخرج أولاً" (FIFO)

جرّب بنفسك

<?php
// قراءة مصفوفة JSON للعملاء
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);

// قراءة عدد العملاء المطلوب خدمتهم
$numToServe = intval(fgets(STDIN));

// TODO: اكتب الكود الخاص بك أدناه
// استخدم array_shift() لإزالة العملاء من مقدمة الطابور


// طباعة المصفوفة النهائية
print_r($customers);
?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow