उपयोग array_search()
:
$key = array_search($value, $array);
तो, अपने कोड में:
// returns the key or false if the value hasn't been found.
function get_area_code($text_input) {
global $england;
return array_search($england, $text_input);
}
आप इसे केस संवेदी, तो आप इस समारोह के बजाय array_search()
का उपयोग कर सकते हैं करना चाहते हैं:
function array_isearch($haystack, $needle) {
foreach($haystack as $key => $val) {
if(strcasecmp($val, $needle) === 0) {
return $key;
}
}
return false;
}
यदि आप सरणी मान नियमित अभिव्यक्ति हैं, तो आप इस फ़ंक्शन का उपयोग कर सकते हैं:
function array_pcresearch($haystack, $needle) {
foreach($haystack as $key => $val) {
if(preg_match($val, $needle)) {
return $key;
}
}
return false;
}
इस मामले में आपको यह सुनिश्चित करना होगा कि आपके सरणी में सभी मान वैध नियमित अभिव्यक्ति हैं।
हालांकि, अगर मान एक <input type="select">
से आ रहे हैं, वहाँ एक बेहतर समाधान है: बजाय <option>Cheshire</option>
उपयोग <option value="CHS">Cheshire</option>
। फिर फॉर्म प्रदर्शित नाम के बजाय निर्दिष्ट मान सबमिट करेगा और आपको अपनी सरणी में कोई भी खोज करने की आवश्यकता नहीं होगी; वैध कोड भेजने के लिए आपको केवल isset($england[$text_input])
की जांच करनी होगी।
+1 @Haroldo बारे में पता होना जब तार के साथ काम है कि array_search केस संवेदी है। – SubniC
क्या array_seach करना संभव है, जहां मान नियमित अभिव्यक्ति है? तो मैं preg_quote और संक्षेप और विभिन्न संस्करणों के लिए खाता का उपयोग कर सकता हूं ... – Haroldo
@ थिफ़ - चुनिंदा इनपुट का उपयोग करने पर उत्कृष्ट सलाह, धन्यवाद! – Haroldo