2010-06-02 30 views
23

आप आसानी से तो जैसे एक प्रमुख से एक सरणी मूल्य प्राप्त कर सकते हैं: $value = array[$key] लेकिन क्या मैं मूल्य है और मैं कुंजी चाहते हैं। इसे पाने का सबसे अच्छा तरीका क्या है?VALUE से सरणी कुंजी कैसे प्राप्त करें?

उत्तर

50

आप array_search() का उपयोग पहले मिलान कुंजी खोजने के लिए कर सकते हैं।

पुस्तिका से

:

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); 

$key = array_search('green', $array); // $key = 2; 
$key = array_search('red', $array); // $key = 1; 
14

आप array_keys उस के लिए फ़ंक्शन का उपयोग कर सकते हैं।

उदाहरण:

$array = array("blue", "red", "green", "blue", "blue"); 
print_r(array_keys($array, "blue")); 

यह मान blue

+0

क्या यह वास्तव में ओपी की तलाश में है? मैं इसे अलग-अलग समझ गया (एक * मूल्य * के लिए खोज के रूप में)। –

+0

@Pekka: चलो क्या ओपी वास्तव में देख रहा है, हालांकि हाथ :) :) – Sarfraz

+0

array_search और array_keys दोनों मेरे लिए काम करते हैं, हालांकि array_search array_keys द्वारा लौटाए गए सरणी के पहले मान को पकड़ने के अतिरिक्त चरण को बाहर ले जाता है। तो मैं array_search का उपयोग करूंगा, लेकिन आप में से प्रत्येक को +1 क्योंकि वे दोनों अच्छे जवाब हैं। –

0

नहीं वास्तव में आसान तरीका के लिए सरणी से कुंजी मिल जाएगा। कुंजी के माध्यम से लूप आप पाते हैं जब तक सरणी [$ कुंजी] == $ मूल्य

आप अक्सर ऐसा करते हैं, तो एक रिवर्स सरणी/हैश है कि मूल्यों चाबियाँ करने के लिए वापस नक्शे पैदा करते हैं। ध्यान रखें कि एकाधिक कुंजी एक ही मान पर मैप कर सकती हैं।

+0

मैं एक रिवर्स नक्शा बनाने यदि आप कई लुकअप क्या करने की जरूरत के साथ [एक आसान तरीका] इस बात से सहमत है, लेकिन वहाँ निश्चित रूप से है (http://stackoverflow.com/questions/2960066/best-way-to-get-array-key- बस कुंजी के साथ मूल्यों फ्लिप कोई तुलना, - से-मूल्य/2960083 # 2960083) –

+1

@barrycarter @ Michael_Mrozek, array_flip – mmattax

0

आपका सरणी मूल्यों डुप्लिकेट हो सकता है तो यह अभ्यस्त आप सटीक चाबी देने। हालांकि जिस तरह से मुझे लगता है ठीक है, ठीक है जैसे कि

3
$arr = array('mango', 'orange', 'banana'); 
$a = array_flip($arr); 
$key = $a['orange']; 
+0

सबसे तेजी से देखते हैं। – fkaufusi

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