PDA

View Full Version : پیدا کردن 20 تا از بزرگ ترین مقدارها در آرایه



Salazar.mi
سه شنبه 10 دی 1398, 20:23 عصر
سلام
من یه آرایه دارم این مدلی


$a=Array ( [hpfcso] => 14 [from] => 15 [miller] => 15 ......)

میخواهم بیام اونایی که 20 تا از بزرگ ترین مقدارها را دارن پیدا کنم تو یه آرایه دیگه بریزم
یه راه گفتم بیام با دستور هایی مثل arsort مرتب کنم بعد با array_slice بیام 20 تای اول را بردارم که نشد چون arsort خروجی نمیده فقط true وfalse میده نمیدونم چجوری درستش کرد

یه راه دیگه هم این که بیام هر بار با max بزرگترین را پیدا کنم بریزمش تو یه آرایه بعد همان را از آرایه اول حذف کنم ولی مشکل اینجاست که نمیدونم چجوری اینکار را کنم
همین دو تا راه را به ذهنم رسید

Salazar.mi
سه شنبه 10 دی 1398, 20:38 عصر
مقدار کلیدها منحصر به فرد ولی مقدار value ها منحصر به فرد نیست
اینجا توضیح داده با تفاوت کلیدها میشه اینکار را کرد
https://stackoverflow.com/questions/369602/deleting-an-element-from-an-array-in-php?rq=1

منم سعی کردم این کار را انجام بدم


for($i=1;$i<21;$i++)
{
$max=max($effective1);

array_diff_key($effective1, [ ]);
}



ولی نمیدونم کلید متغیر max را چجوری بدست بیارم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟
ممنون میشم کمکم کنین
تشکر

ASHKANLAEI
سه شنبه 10 دی 1398, 21:01 عصر
دوست عزیز از همون arsort استفاده کنید این تابع خروجی نداره بلکه خود آرایه رو مرتب میکنه بعنی باید این شکلی بنویسین:

asort($a);
array_splice($a, 20);
print_r($a);

Salazar.mi
سه شنبه 10 دی 1398, 22:41 عصر
بی نهایت ممنونم درست شد
واقعا ممنون
فقط چون دنبال max هستیم باید arsort استفاده کنیم
بی نهایت ممنون