شرح صفوف ومحتوى الفقرة
يُعد الخلط بين array_slice() وarray_splice() خطأً شائعاً؛ فالأولى تقرأ نسخة آمنة بينما الثانية تغيّر المصفوفة الأصلية بشكل دائم.
- استخدم
array_slice()لمعاينة صفحات النتائج (Pagination) أو استخراج أعلى العناصر دون المساس بالأصل. - استخدم
array_splice()عندما تريد عمداً حذف أو استبدال أو إدراج عناصر داخل متغير المصفوفة نفسه. - تذكر أن
array_splice()لا تحتفظ بالمفاتيح الرقمية أبداً، بل تعيد ترقيمها دائماً من0.
تركت array_slice() المصفوفة $source سليمة بأربعة عناصر، بينما اقتطعت array_splice() أول عنصرين من داخل $source.
| الميزة | array_slice() | array_splice() | array_shift() / array_pop() |
|---|---|---|---|
| هل تعدّل المصفوفة الأصلية؟ | لا (قراءة آمنة فقط) | نعم (تعديل مباشر بالمرجع) | نعم (تعديل مباشر بالمرجع) |
| القيمة المُرجعة | الشريحة المستخرجة | مصفوفة بالعناصر المحذوفة | العنصر الواحد المسحوب |
| هل تحتفظ بالمفاتيح الرقمية؟ | نعم (بتمرير true في المعامل الرابع) | لا (تعيد الترقيم دائماً من 0) | pop: نعم / shift: لا |
| هل تتيح إدراج عناصر بديلة؟ | لا | نعم (عبر المعامل الرابع) | استخدم push / unshift |
<?php
$source = ["v1", "v2", "v3", "v4"];
$preview = array_slice($source, 0, 2);
$deleted = array_splice($source, 0, 2);
echo "Preview : " . implode(", ", $preview) . "\n";
echo "Source left after splice: " . implode(", ", $source) . "\n";
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
يُعد الخلط بين array_slice() وarray_splice() خطأً شائعاً؛ فالأولى تقرأ نسخة آمنة بينما الثانية تغيّر المصفوفة الأصلية بشكل دائم. استخدم array_slice() لمعاينة صفحات النتائج (Pagination) أو استخراج أعلى العناصر دون المساس بالأصل. استخدم array_splice() عندما تريد عمداً حذف أو استبدال أو إدراج عناصر داخل متغير المصفوفة نفسه. تذكر أن array_splice() لا تحتفظ بالمفاتيح الرقمية أبداً، بل تعيد ترقيمها دائماً من 0.