المفاتيح باستخدام 'array_search'
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 18 من 68.
بينما تخبرك الدالة in_array() ما إذا كانت القيمة موجودة في مصفوفة أم لا، فإنك تحتاج أحيانًا إلى معرفة أين تقع هذه القيمة بالضبط. تقوم الدالة array_search() بالبحث عن قيمة محددة في مصفوفة وتُرجع المفتاح أو الفهرس المقابل لها.
إليك كيف يعمل ذلك:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // المخرجات: 2
?>تأخذ الدالة معاملين: القيمة التي تبحث عنها والمصفوفة التي يتم البحث فيها. عند العثور على القيمة، array_search() تعيد المفتاح (بالنسبة للمصفوفات المفهرسة، هذا هو الموقع الرقمي الذي يبدأ من 0).
ومع ذلك، هناك فرق مهم فيما يتم إرجاعه. إذا تم العثور على القيمة، فستحصل على المفتاح. إذا لم يتم العثور على القيمة، فستقوم الدالة بإرجاع false:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // يعيد: 2
$notFound = array_search(100, $scores); // يعيد: false
?>تعد هذه الدالة مفيدة بشكل خاص عندما تحتاج إلى تحديد موضع أو ترتيب عنصر ما، مثل معرفة ترتيب لاعب في لوحة المتصدرين أو تحديد موقع الفهرس (index) لعنصر معين لمزيد من المعالجة.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
التحدي
سهلستتلقى مدخلين: مصفوفة من أسماء المنتجات بتنسيق JSON واسم منتج للبحث عنه. اقرأ كلا المدخلين، وقم بتحويل سلسلة JSON إلى مصفوفة، واستخدم array_search() للعثور على موقع المنتج في المصفوفة، واطبع النتيجة. إذا تم العثور على المنتج، اطبع موقعه (الفهرس). إذا لم يتم العثور على المنتج، اطبع "Product not found".
تنسيق المدخلات: سطران - السطر الأول يحتوي على مصفوفة JSON (مثال: ["laptop","mouse","keyboard","monitor"])، والسطر الثاني يحتوي على اسم المنتج المراد البحث عنه
المخرجات المتوقعة: إما موقع الفهرس الرقمي للمنتج (بدءاً من 0) أو النص "Product not found" إذا لم يكن المنتج موجوداً في المصفوفة
ورقة مرجعية
تبحث الدالة array_search() عن قيمة محددة في مصفوفة وتعيد المفتاح أو الفهرس المقابل لها:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // المخرجات: 2
?>تأخذ الدالة معاملين: القيمة التي تبحث عنها والمصفوفة التي يتم البحث فيها. وتعيد المفتاح في حال العثور عليها، أو false في حال عدم العثور عليها:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // يعيد: 2
$notFound = array_search(100, $scores); // يعيد: false
?>جرّب بنفسك
<?php
// قراءة مدخلات مصفوفة JSON
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);
// قراءة اسم المنتج المراد البحث عنه
$searchProduct = trim(fgets(STDIN));
// TODO: اكتب الكود الخاص بك أدناه
// استخدم array_search() للعثور على موقع المنتج
// إخراج النتيجة
echo $result;
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس 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'مراجعة: ترتيب لوحة المتصدرين