راکت
حل شده

کدی که دومین عدد بزرگ را از آرایه استخراج کند

6 پاسخ

سلام وقتتون بخیر

من میخوام با php کدی بنویسم که دومین عدد بزرگ را از یه آرایه استخراج کنه با استفاده از function
ممنون میشم کمک کنید

ثبت پرسش جدید

پاسخ‌ها

6
میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

بهترین پاسخ

سلام خسته نباشید
ببین ارایه به صورت بزرگ به کوچیک مرتب کن index دومی میشه جوابت

محمدرضا
محمدرضا
@mrjazini.ir

تخصص: <programmer/>

سلام

هر چی گشتم تابعی براش پیدا نکردم 😂😂
راه حل فضایی خودم رو میگم براتون

ابتدا با استفاده از

max()

بیشترین مقدار رو بدست بیارید
بعدش با استفاده از

array_search()

شماره ایندکس بزرگترین عدد رو بدست بیارید
بعد با استفاده از

unset()

مقدار رو حذف کنید
حالا دوباره تابع

max()

رو روی آرایه جدید اعمال کنید

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

آرایه رو مرتب سازی کن (مثلا از کوچک به بزرگ)، سپس عنصر یکی به آخر میشه جواب.

شاید پاسخ شما همین‌جا باشد

میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

البته index اولی میشه چون از صفر شروع میشه

Mohammad
Mohammad
@Mohammad.Naderi85

خیلی ممنون از راهنماییتون 🙏🙏🙏
@milwad

ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

اول با تابع های Sorting(مرتب سازی) PHP میای آرایه رو مرتب میکنی بعد ایندکس مورد نظر آرایه رو انتخاب کنی.
من اینجا از rsort استفاده کردم و از اونجایی که به دومین عدد بزرگ احتیاج داریم ایندکس دوم(1) رو بدست آوردم.

<?php
$numbers = array(4, 6, 2, 22, 11);
echo 'Array: '; var_dump($numbers);
rsort($numbers);
echo 'Sorted Array: '; var_dump($numbers);
echo "Second place among the largest numbers: ".  $numbers['1'];

نمونه خلاصه و تمیز کد قبلی:

<?php
$numbers = array(4, 6, 2, 22, 11);
var_dump($numbers);
rsort($numbers);
var_dump($numbers);
echo $numbers['1'];

@mrjazini.ir
روش جالبی رو مطرح کردی اما ممکن تو کد بعدا بزرگترین عدد هم لازم بشه پس حذف کردن بزرگترین عدد کار منطقی نیست.
مثلا میتونیم قبل حذف بزرگترین عدد از آرایه یه آرایه جدید بسازیم و آرایه اصلی رو بریزیم توش و از آرایه دوم بزرگترین عدد رو حذف کنیم و ادامه مراحلی که گفتی رو انجام بدیم بعد که دومین عدد بزرگ رو بدست آوردیم بریم تو آرایه اصلی دنبالش بگردیم و شماره ایندکسش رو پیدا کنیم.
پس کدمون به این شکل در میاد:

$numbers = array(4, 6, 2, 22, 11);
$numbers_2 = $numbers;
unset($numbers_2[array_search(max($numbers_2),$numbers_2)]);
$output = $numbers[array_search(max($numbers_2), $numbers)];
echo $output;

این کد هم دومین عدد بزرگ رو از آرایه $numbers بدست میاره
همچنین میتونیم به جای ساخت یه آرایه جدید فقط بزرگترین عدد رو بدست بیاریم و بریزیم تو یه متغیر و بعد از آرایه حذفش کنیم اما شاید لازم باشه بزرگترین عدد داخل خود آرایه وجود داشته باشه که برای اون هم میتونیم بزرگترین عدد که تو یه متغیر قرارش دادیم رو در نهایت(بعد پیدا کردن دومین عدد بزرگ) دوباره به آرایه اضافه کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام