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

'array_map' مع دالة مخصصة

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

بينما تعمل الدوال المدمجة مثل strtoupper بشكل جيد مع array_map()، فإن القوة الحقيقية تأتي من استخدام الدوال المخصصة الخاصة بك. يتيح لك ذلك إنشاء تحويلات محددة مصممة خصيصاً لتلبية احتياجاتك الدقيقة.

لاستخدام دالة مخصصة مع array_map()، ما عليك سوى تمرير اسم الدالة كسلسلة نصية (string) للمعامل الأول. يجب أن تقبل دالتك المخصصة معاملاً واحداً (عنصر المصفوفة الحالي) وتعيد القيمة المحولة.

<?php
function doubleNumber($num) {
    return $num * 2;
}

$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// النتيجة: [2, 4, 6, 8, 10]
?>

يمنحك هذا النهج تحكماً كاملاً في كيفية معالجة كل عنصر. يمكنك إجراء عمليات حسابية معقدة، أو معالجة النصوص، أو أي منطق آخر داخل وظيفتك المخصصة، مما يجعل array_map() متعددة الاستخدامات بشكل لا يصدق لمهام تحويل البيانات.

quiz iconاختبر نفسك

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

quiz iconاختبر نفسك

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

quiz iconاختبر نفسك

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

challenge icon

التحدي

سهل

ستتلقى مدخلين: قائمة من درجات الحرارة بالدرجة المئوية (Celsius) مفصولة بفاصلة، ووحدة مستهدفة للتحويل (إما F للفهرنهايت أو K للكلفن). يحتوي المدخل الأول على درجات الحرارة كسلسلة نصية بتنسيق 0,10,20,30,100، والمدخل الثاني هو حرف واحد يشير إلى نوع التحويل.

اقرأ كلا المدخلين، وقم بتحويل درجات الحرارة المفصولة بفاصلة إلى مصفوفة من الأرقام، وأنشئ دالة مخصصة تقوم بتحويل درجة الحرارة المئوية إلى الوحدة المستهدفة، واستخدم array_map() مع دالتك المخصصة لتحويل جميع درجات الحرارة، واطبع كل درجة حرارة محولة في سطر منفصل، مقربة إلى منزلتين عشريتين.

صيغ التحويل:

  • من مئوي إلى فهرنهايت: (C × 9/5) + 32
  • من مئوي إلى كلفن: C + 273.15

تنسيق المدخلات:

  • السطر الأول: درجات حرارة مئوية مفصولة بفاصلة (مثال: 0,10,20,30,100)
  • السطر الثاني: وحدة التحويل المستهدفة - إما F أو K (مثال: F)

المخرجات المتوقعة: طباعة كل درجة حرارة محولة في سطر منفصل، مقربة إلى منزلتين عشريتين

ورقة مرجعية

استخدم الدوال المخصصة مع array_map() عن طريق تمرير اسم الدالة كسلسلة نصية. يجب أن تقبل الدالة المخصصة معاملًا واحدًا (عنصر المصفوفة الحالي) وتعيد القيمة المحولة.

<?php
function doubleNumber($num) {
    return $num * 2;
}

$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// النتيجة: [2, 4, 6, 8, 10]
?>

يوفر هذا النهج تحكمًا كاملاً في معالجة العناصر، مما يسمح بإجراء حسابات معقدة، أو معالجة النصوص، أو أي منطق مخصص داخل الدالة الخاصة بك.

جرّب بنفسك

<?php
// قراءة درجات الحرارة المفصولة بفاصلة
$temperatures = fgets(STDIN);

// قراءة الوحدة المستهدفة (F أو K)
$unit = trim(fgets(STDIN));

// تحويل السلسلة النصية المفصولة بفاصلة إلى مصفوفة من الأرقام
$tempArray = explode(',', trim($temperatures));

// TODO: اكتب الكود الخاص بك أدناه
// إنشاء دالة مخصصة لتحويل الدرجة المئوية (Celsius) إلى الوحدة المستهدفة
// استخدم array_map() لتطبيق التحويل على جميع درجات الحرارة
// اطبع كل درجة حرارة محولة في سطر منفصل، مقربة إلى منزلتين عشريتين

?>
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow