2011-08-15 12 views
13

का उपयोग करके सरणी कुंजी प्राप्त करना मैं सरणी में सबसे बड़ा मान खोजने के लिए अधिकतम() फ़ंक्शन का उपयोग कर रहा हूं। मुझे उस मूल्य की कुंजी वापस करने का एक तरीका चाहिए। मैंने array_keys() फ़ंक्शन के साथ खेलने का प्रयास किया है, लेकिन मैं इसे करने के लिए प्राप्त कर सकता हूं सरणी की सबसे बड़ी कुंजी वापस कर रहा है। ऐसा करने का एक तरीका होना चाहिए लेकिन PHP मैनुअल में कुछ भी उल्लेख नहीं है।अधिकतम() फ़ंक्शन

$arrCompare = array('CompareOne' => $intOne, 
        'CompareTwo' => $intTwo, 
        'CompareThree' => $intThree, 
        'CompareFour' => $intfour); 

$returnThis = max($arrCompare); 

मैं सफलतापूर्वक सरणी के उच्चतम मूल्य प्राप्त कर सकते हैं, मैं सिर्फ जुड़े प्रमुख नहीं मिल सकता है:

यहाँ कोड मैं उपयोग कर रहा हूँ का एक नमूना है। कोई विचार?


संपादित करें: बस स्पष्ट करने के लिए, इस काम नहीं करेगा का उपयोग कर:

$max_key = max(array_keys($array)); 

यह कुंजी तुलना करता है और सरणी में मानों के साथ कुछ नहीं करता है।

+0

यह अजीब लगता है कि 'array_keys()' आप मदद नहीं करता है। – Dor

+0

@ डोर: 'array_keys' का उपयोग करके प्रमुख मानों की तुलना करें। –

उत्तर

25

array_search समारोह आप में मदद मिलेगी।

$returnThis = array_search(max($arrCompare),$arrCompare); 
+0

यह अच्छी तरह से मिरो का काम करता है और ऐसा लगता है कि मैं दो मूल्यों को एक तरह से संभालने के तरीके से निपट सकता हूं। धन्यवाद। – Cloudkiller

+0

धन्यवाद। मुझे खुशी है कि मैंने मदद की;) – kravemir

4

एक लाइनर नहीं है, लेकिन यह आवश्यक कार्य करेगा।

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

http://cherryblossomweb.de/2010/09/26/getting-the-key-of-minimum-or-maximum-value-in-an-array-php/ से

+0

प्रत्येक लूप पुनरावृत्ति में 'अधिकतम ($ सरणी)' को पुन: गणना न करें - मुझे बहुत संदेह है कि PHP रनटाइम लूप –

+0

@Adam: वाह से बाहर निकलने के लिए पर्याप्त स्मार्ट है। बहुत बहुत धन्यवाद। मुझे विश्वास नहीं है कि मुझे याद आया कि जब मैं इसे पढ़ रहा था! –

+0

मैंने एक-लाइनर बनाया है;) – kravemir

6

आप स्रोत सरणी से अधिकतम मूल्य के लिए सभी कुंजियों की जरूरत है, तो आप कर सकते हैं:

$keys = array_keys($array, max($array)); 
+0

इसे पसंद करें, हालांकि यह शायद 'array_search() 'से कम स्पष्ट है। मुझे यह भी पता नहीं था कि 'array_keys'' दूसरी खोज के रूप में '$ search_value' ले सकता है! –

+0

यह दूसरी उच्चतम कुंजी लौटा दी। मैं इस जवाब के साथ गया और यह मेरे मामले में काम किया: https://stackoverflow.com/questions/6126066/search-for-highest-key-index-in-an-array – Cagy79

संबंधित मुद्दे