سلام
هر چی گشتم تابعی براش پیدا نکردم 😂😂
راه حل فضایی خودم رو میگم براتون
ابتدا با استفاده از
max()
بیشترین مقدار رو بدست بیارید
بعدش با استفاده از
array_search()
شماره ایندکس بزرگترین عدد رو بدست بیارید
بعد با استفاده از
unset()
مقدار رو حذف کنید
حالا دوباره تابع
max()
رو روی آرایه جدید اعمال کنید
اول با تابع های 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 بدست میاره
همچنین میتونیم به جای ساخت یه آرایه جدید فقط بزرگترین عدد رو بدست بیاریم و بریزیم تو یه متغیر و بعد از آرایه حذفش کنیم اما شاید لازم باشه بزرگترین عدد داخل خود آرایه وجود داشته باشه که برای اون هم میتونیم بزرگترین عدد که تو یه متغیر قرارش دادیم رو در نهایت(بعد پیدا کردن دومین عدد بزرگ) دوباره به آرایه اضافه کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟