একটি অ্যারের সর্বোচ্চ মানের রিটার্ন সূচক


92

নীচের মতো দেখতে এমন একটি অ্যারে থেকে, আমি কীভাবে অ্যারে সর্বোচ্চ মানের সূচক পেতে পারি। নীচের অ্যারেগুলির জন্য, পছন্দসই ফলাফলটি '11' হবে।

Array (
    [11] => 14
    [10] => 9
    [12] => 7
    [13] => 7
    [14] => 4
    [15] => 6
)

এটি একটি সময় হয়েছে, কিন্তু আপনার অ্যারে ইতিমধ্যে সাজানো (অবতরণ) বলে মনে হচ্ছে; হয় এটি একটি খারাপ উদাহরণ বা আপনার সত্যিই প্রয়োজন reset($arr); echo key($arr);:)
জ্যাক ২

উত্তর:


209

আমার সমাধানটি হ'ল:

$maxs = array_keys($array, max($array))

দ্রষ্টব্য:
এইভাবে আপনিপ্রদত্ত সর্বোচ্চ মান সম্পর্কিত প্রতিটি কী পুনরুদ্ধার করতে পারেন।

আপনি যদি সবার মধ্যে কেবল একটি চাবিতে আগ্রহী হন তবে সর্বাধিক ব্যবহার করুন s সর্বোচ্চ [0]


কিভাবে দুটি মান একই হয় তা দেখতে হবে?
আলফামেলে

ডুপ্লিকেটস থাকলে দুটি বা ততোধিক মান রয়েছে কিনা তা আপনি ফলাফলটি পরীক্ষা করতে পারেন
জুলিও পপক্যাটল

@ অ্যালফামলে আপনার বোঝার মতো দুটি কী আপনি বোঝাচ্ছেন যেহেতু সর্বাধিক মান সংজ্ঞা অনুসারে কেবল একটি মাত্র .. @ আপনি যদি ডুপ্লিকেট কীগুলি না চান তবে সর্বাধিক অনুসন্ধান করুন (যেমন এড়ানো array_keys) এবং আপনি সর্বোচ্চটির সাথে সম্পর্কিত একটি মাত্র কী পাবেন মান
drAlberT

36
<?php

$array = array(11 => 14,
               10 => 9,
               12 => 7,
               13 => 7,
               14 => 4,
               15 => 6);

echo array_search(max($array), $array);

?>

অ্যারে_সার্চ () রিটার্ন মানগুলি:

সুইয়ের কীটি যদি অ্যারেটিতে পাওয়া যায় তবে তা FALSE দেয়।

যদি খড়ের খড়ের মধ্যে সুইগুলি একাধিকবার পাওয়া যায়, তবে প্রথম ম্যাচিং কীটি ফিরে আসবে। সমস্ত মিলে যাওয়া মানগুলির জন্য কীগুলি ফেরত পেতে, পরিবর্তে searchচ্ছিক অনুসন্ধান_মূল্য প্যারামিটার সহ অ্যারে_কিগুলি () ব্যবহার করুন।


12

আমি জানি এটি ইতিমধ্যে উত্তর দেওয়া হয়েছে তবে এখানে একটি সমাধান আমি আরও মার্জিত বলে মনে করি:

arsort($array);
reset($array);
echo key($array);

ও ভয়েলা!


4
resetBTW প্রয়োজন নেই।
কুরোই নেখো

3

অন্যান্য উত্তরের সংক্ষিপ্ত কোড থাকতে পারে তবে এটি সবচেয়ে কার্যকর এবং বোঝা সহজ should

/**
 * Get key of the max value
 *
 * @var array $array
 * @return mixed
*/
function array_key_max_value($array)
{
    $max = null;
    $result = null;
    foreach ($array as $key => $value) {
        if ($max === null || $value > $max) {
            $result = $key;
            $max = $value;
        }
    }

    return $result;
}

1

এর মতো কিছুতে কৌশলটি করা উচিত

function array_max_key($array) {
  $max_key = -1;
  $max_val = -1;

  foreach ($array as $key => $value) {
    if ($value > $max_val) {
      $max_key = $key;
      $max_val = $value;
    }
  }

  return $max_key;
}

4
ডিফল্ট মান হিসাবে প্রথম আইটেমের কী এবং মানটি ব্যবহার করা আরও ভাল।
গম্বো

1

উচ্চতর কীটি পাওয়ার আমার সমাধানটি নীচে রয়েছে:

max(array_keys($values['Users']));


0
<?php 
$array =  array (
    '11' => 14,
    '10' => 9,
    '12' => 7,
    '13' => 7,
    '14' => 4,
    '15' => 6
);

foreach ($array as $key => $value) {
   if ($value >= $max) 
        $max = max($array);          
}
echo " The array in Maximum Value :".$max."<br/>";
?> 

-7

Http://www.php.net/manual/en/function.max.php থেকে নেওয়া ফাংশন

function max_key($array) {
    foreach ($array as $key => $val) {
        if ($val == max($array)) return $key; 
    }
}

$arr = array (
    '11' => 14,
    '10' => 9,
    '12' => 7,
    '13' => 7,
    '14' => 4,
    '15' => 6
);

die(var_dump(max_key($arr)));

একটি যাদুমন্ত্র মত কাজ করে


8
পারফরম্যান্স সম্পর্কে কথা বলতে হবে না। অ্যারের মাধ্যমে ভবিষ্যদ্বাণী করা, প্রতিবার সর্বাধিক মান পরীক্ষা করা "খারাপ অভ্যাস" এর চেয়েও খারাপ।
বিস্কো

4
আমি এটি আমার বাস্তবায়ন নয় উল্লেখ করেছি। এটি একটি দ্রুত এবং নোংরা অনুলিপি / পেস্ট ছিল যা ওপি স্পষ্টতই নিজেকে করতে পারে না, মিস্টার।
তৈমুর আসালিভ

4
মিথ্যে কথা বলছেন না, আপনি আমাকে কিছুটা ছোটাছুটি করেছেন। আপনি অ্যারের মাধ্যমে প্রতিটি পুনরাবৃত্তির জন্য সর্বাধিক () সম্পর্কে উদ্বিগ্ন? এটি "খারাপ অভ্যাসের চেয়ে খারাপ"। না, আমি বিশ্বাস করি না। এটি সবচেয়ে মার্জিত নয়, তবে এটি কার্যকর।
শন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.