اذهب إلى المحتوى
  • 0

كيف يمكن كتابة تابع يولد مصفوفة من مربعات أرقام في PHP؟

اية اية3

السؤال

كيفية انشاء فنكشن في php تاخذ مجموعة من الارقام وترجع مصفوفة من المربعات لكل رقم.

وهذه محاولتي في الحل 

function s(...$numbers) {
  foreach ($numbers as $n) {$m =$n**2;}
  return $m ;
}
echo s( 3).','; echo s( 5);

 

تم التعديل في بواسطة Hassan Hedr
تنسيق الشيفرة
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0
بتاريخ الآن قال اية اية3:

زبط لكن لم يخرج على شكل مصفوفة []

ما يتم طباعته هي عناصر المصفوفة المسترجعة من الدالة s , اذا بالفعل لدينا مصفوفة , ولكن لا يمكن طباعة المصفوفة الا بالمرور على جميع عناصرها باستخدام حلقات التكرار , استخدمنا حلقة التكرار foreach وقمنا بطباعة عناصر المصفوفة , اذا كنتي تريدين أن يكون الناتج يأخذ شكل المصفوفة فيمكنك فعل ذلك كالتالي

<?php
function s(...$numbers) {
foreach ($numbers as $n) {
$m[] = $n**2;
}
return $m;
}
$result='[';// قمنا بإنشاء متغير واسندنا اليه قيمة نصية قيمتها فقط القوس الواضح أمامك
foreach(s(3, 5) as $square) {
    $result.= $square . ','; // نقوم بإلحاق قيمة العناصر بالمتغير الذي انشأناه
}

$result.=']';// بعد انتهاء حلقة التكرار نقوم بإغلاق القوس
echo $result;// نقوم بطباعة قيمة المتغير الذي أنشأناه
?>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

التابع المذكور يقوم بالمرور على الأرقام الممررة له ويحسب مربع كل منها ويخزنه ضمن المتغير m$، الخطأ لديك هو عند تخزين تلك القيمة سيتم مسح القيمة السابقة لها وبالتالي لن نحصل سوى على آخر نتيجة فقط،

بما أن استخدامك للتابع هو فقط لتمرير عدد مفرد يمكن كتابته لإرجاع نتيجة مفردة وليس مصفوفة كالتالي:

function s($number) {
  return $number**2;
}
echo s(3).',';
echo s(5);

// 9, 25

أما في حالة إرجاع مصفوفة حصرًا يجب تغيير طريقة اسنادك للنتيجة لمتغير مصفوفة النتائج وإضافة قوسين مربعين، ويجب تغيير طريقة استعمال المصفوفة باعتبار أنها ترجع مصفوفة وليس عدد مفرد، لتصبح كالتالي:

function s(...$numbers) {
  foreach ($numbers as $n) {
    $m[] = $n**2;
  }
  return $m;
}

foreach(s(3, 5) as $square) {
  echo s($square) . ',';
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 10 دقائق مضت قال اية اية3:

لماذا عندما اكتب الكود الذي كتبته ينتج لدي error في سطر الطباعة echo

هل يمكنك ارفاق الكود الذي كتبتيه؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 دقيقة مضت قال محمد أبو عواد:

هل يمكنك ارفاق الكود الذي كتبتيه؟

function s(...$numbers) {
  foreach ($numbers as $n) {
    $m[] = $n**2;
  }
  return $m;
}
foreach(s(3, 5) as $square) {
  echo s($square) . ','; 
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 4 دقائق مضت قال اية اية3:

function s(...$numbers) {
  foreach ($numbers as $n) {
    $m[] = $n**2;
  }
  return $m;
}
foreach(s(3, 5) as $square) {
  echo s($square) . ','; 
}

 

 لاحظي أنك تقومين باستدعاء المصفوفة مرة أخرى في جملة الطباعة

echo s($square) . ','; 
     ^^^

سوف نعدل السطر كالتالي

echo $square . ','; 

جربي الأمر مرة أخرى وأخبرينا بالنتيجة

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 دقيقة مضت قال محمد أبو عواد:

 لاحظي أنك تقومين باستدعاء المصفوفة مرة أخرى في جملة الطباعة


echo s($square) . ','; 
     ^^^

سوف نعدل السطر كالتالي


echo $square . ','; 

جربي الأمر مرة أخرى وأخبرينا بالنتيجة

زبط لكن لم يخرج على شكل مصفوفة []

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 11 ساعات قال اية اية3:

زبط لكن لم يخرج على شكل مصفوفة []

إذا نظرت لناتج التابع s فهو يعيد مصفوفة بنواتج مربعات الأرقام الممررة يمكنك التأكد من ذلك كما يلي

print_r(s(3,5)); // [3, 5] مصفوفة

لكن في حلقة الطباعة نحن نستخدم المصفوفة الناتجة ونمر على عناصرها بشكل مفرد، لذا قيمة square$ ستكون عدد وهو مربع أحد الأعداد

foreach(s(3, 5) as $square) {
  // $square عدد
  echo $square . ',';
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...