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

Flipping and Deduplicating Arrays عكس المفاتيح وإزالة التكرار بـ array_flip و array_unique

ادمج واستبدل عناصر المصفوفات بـ array_merge وarray_replace، واربط المفاتيح بالقيم عبر array_combine، واحسب التقاطع والاختلاف.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

تزيل array_unique() القيم المكررة من المصفوفة، بينما تبدّل array_flip() المفاتيح مكان القيم لتحويل البحث الخطي البطيء O(n) إلى فحص فوري بالمفتاح O(1).

  • تحتفظ array_unique($arr) بأول مفتاح لكل قيمة فريدة دون إعادة ترقيم المفاتيح (مرر الناتج إلى array_values() إذا أردت ترقيماً متسلسلاً من 0).
  • تبدّل array_flip($arr) المفاتيح بالقيم، ويشترط أن تكون القيم نصوصاً أو أعداداً صحيحة.
  • يُعد الفحص isset($flipped[$needle]) أسرع بكثير من تكرار استدعاء in_array($needle, $list, true) داخل الحلقات.

تزيل array_unique() الوسوم المكررة، وتعيد array_values() ترقيمها، ثم تبني array_flip() جدول بحث فوري بالمفتاح.

الدالةالوظيفة الأساسيةسلوك المفاتيح
array_merge($a, $b)إلحاق القوائم واستبدال المفاتيح النصيةتُستبدل المفاتيح النصية وتُعاد فهرسة الرقمية
array_replace($a, $b)استبدال القيم بالمفتاح (النصي والرقمي)تحتفظ بجميع المفاتيح كما هي
array_combine($k, $v)ربط مصفوفة مفاتيح بمصفوفة قيمتصبح عناصر $k هي المفاتيح
array_diff($a, $b)إرجاع قيم $a غير الموجودة في $bتحتفظ بمفاتيح المصفوفة الأولى $a
array_unique($a)إزالة القيم المكررةتحتفظ بأول مفتاح لكل قيمة فريدة
PHP
<?php
$rawTags = ["php", "backend", "php", "api", "backend"];
$unique  = array_values(array_unique($rawTags));
$lookup  = array_flip($unique);

echo "Unique: " . implode(", ", $unique) . "\n";
echo "Has api? " . (isset($lookup["api"]) ? "Yes (index " . $lookup["api"] . ")" : "No") . "\n";
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

تزيل array_unique() القيم المكررة من المصفوفة، بينما تبدّل array_flip() المفاتيح مكان القيم لتحويل البحث الخطي البطيء O(n) إلى فحص فوري بالمفتاح O(1). تحتفظ array_unique($arr) بأول مفتاح لكل قيمة فريدة دون إعادة ترقيم المفاتيح (مرر الناتج إلى array_values() إذا أردت ترقيماً متسلسلاً من 0). تبدّل array_flip($arr) المفاتيح بالقيم، ويشترط أن تكون القيم نصوصاً أو أعداداً صحيحة. يُعد الفحص isset($flipped[$needle]) أسرع بكثير من تكرار استدعاء in_array($needle, $list, true) داخل الحلقات.