একটি অ্যারেতে সর্বোচ্চ কী / সূচক অনুসন্ধান করুন


95

আমি কীভাবে পিএইচপি দিয়ে একটি অ্যারের সর্বোচ্চ কী / সূচক পেতে পারি? আমি জানি মানগুলির জন্য এটি কীভাবে করা যায়।

উদাঃ এই অ্যারে থেকে আমি পূর্ণসংখ্যার মান হিসাবে "10" পেতে চাই:

$arr = array( 1 => "A", 10 => "B", 5 => "C" );

আমি জানি যে আমি এটি কীভাবে প্রোগ্রাম করতে পারি তবে আমি নিজেই জিজ্ঞাসা করছিলাম যে এটির জন্য এখানে কোনও ফাংশন রয়েছে কিনা।

উত্তর:


209

এটি ভাল কাজ করা উচিত

$arr = array( 1 => "A", 10 => "B", 5 => "C" );
max(array_keys($arr));

আপনি কি জানেন যে এটির মতো যদি একটি কী সেট করা থাকে তবে কী কাজ করবে: $ অ্যারে = অ্যারে (1 => "এ", 10 => "বি", 5 => "সি", "15" => "ডি ");
রাফেল লুথিগার

4
@ রাফেল লুথিজার এটি পরীক্ষা করে দেখুন এবং দেখুন আপনি সঠিক ফলাফল পান কিনা।
জোনাথন কুহান

4
এটি খালি অ্যারের ক্ষেত্রে পরিচালনা করে না। সরাসরি পিএইচপি ম্যানুয়াল থেকে max:If an empty array is passed, then FALSE will be returned and an E_WARNING error will be emitted.
সিফন


2
$keys = array_keys($arr);
$keys = rsort($keys);

print $keys[0];

"10" মুদ্রণ করা উচিত


2

আমার এমন পরিস্থিতি হয়েছিল যেখানে আমার অ্যারেতে পরবর্তী উপলব্ধ কীটি অর্জন করতে হবে যা সর্বোচ্চ +1।

উদাহরণস্বরূপ, অ্যারেটি যদি $ ডেটা = ['1' => 'কিছু, '34' => 'অন্য কিছু'] হয় তবে অ্যারেতে একটি নতুন উপাদান যুক্ত করতে আমার 35 টি গণনা করা দরকার যা কোনওর চেয়ে কী উচ্চতর ছিল অন্যদের। খালি অ্যারের ক্ষেত্রে আমার পরবর্তী উপলব্ধ কী হিসাবে 1 টি দরকার।

এটি সমাধানটি কাজ করে:

    $highest = 0;
    foreach($data as $idx=>$dummy)
    {
        if($idx > $highest)$highest=$idx;
    }
    $highest++;

এটি খালি অ্যারে বা না করে সব ক্ষেত্রেই কাজ করবে। আপনার যদি সর্বাধিক কী +1 এর চেয়ে সর্বোচ্চ কীটি সন্ধান করতে হয় তবে শেষ লাইনটি মুছুন। তারপরে অ্যারেটি ফাঁকা থাকলে আপনি 0 এর মান পাবেন।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.