انتقل إلى محتوى الدرس

array_slice vs array_splice Comparison مقارنة شاملة بين array_slice و array_splice

تحكم في أطراف المصفوفة عبر array_push وarray_pop وarray_shift وarray_unshift، واقتطع أو استبدل الشرائح بـ array_slice وarray_splice.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يُعد الخلط بين 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
<?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.