2011-04-06 16 views
6

में इंडेक्स ऑफसेट त्रुटि के बिना PHP सरणी के मान को कैसे जांचें, क्या 1 आईएफ कथन में PHP सरणी में किसी निश्चित कुंजी का मान जांचना संभव है? अभी, इंडेक्स ऑफ़सेट त्रुटि फेंकने के लिए मुझे यह जांचना है कि कुंजी सेट है या नहीं, फिर उसका मान जांचें।1 आईएफ

if (isset($array[$key])) 
{ 
    if ($array[$key] == $x) 
    { 
     // do stuff 
    } 
} 

(माफ करना, गलती से डाल पहले में मूल रूप से अगर!)

+0

कोड जांच मूल्य कहां है? –

+1

ठीक है। यदि सेट नहीं है, तो यू नहीं कर सकते अपने मूल्य की जाँच ... – Neal

+0

अगर (isset ($ सरणी [$ कुंजी]) && $ सरणी [$ कुंजी] == $ x) { // कर सामान } – Fivell

उत्तर

6

The && operator is short-circuit, इस प्रकार:

if (isset($array[$key]) && $array[$key] == $x) 
    // do stuff 
} 

मुबारक कोडिंग।

+0

इसमें त्रुटियां होंगी। यदि यह आपके से सेट नहीं है तो यह जांच नहीं सकता कि यह किसी चीज़ के बराबर है या नहीं ... मेरा उत्तर – Neal

+0

@Neal धन्यवाद, लेकिन सम्मान के साथ, कृपया टिप्पणी देखें ... ... इसे सही बनाने के लिए समायोजित करें "। '&&' की शॉर्ट-सर्किट प्रकृति अभी भी रखती है, यह पोस्टर के लिए एक अभ्यास है ;-) –

+0

धन्यवाद, मुझे नहीं पता था और संक्षिप्त सर्किट था। "और" भी छोटा सर्किट है, मुझे विश्वास है। –

1

हाँ, बूलियन ऑपरेटर && के साथ;)

if (isset($array[$key]) && ($array[$key] == $x)) { 
    // do stuff 
} 
+0

इसमें त्रुटियां होंगी। यदि यह आपके से सेट नहीं है तो यह जांच नहीं सकता कि यह किसी के बराबर है या नहीं ... मेरा उत्तर देखें – Neal

+0

कोड की जांच करें, प्रारंभिक प्रश्न त्रुटिपूर्ण था ;-) –

+0

प्रश्न से कोड ले लिया और इसे सत्यापित नहीं किया। बेशक, मुझे यह करना चाहिए था। – KingCrunch

2

इस प्रयास करें। उर वर्तमान कोड अभ्यस्त कुछ भी दूसरा करना बीसी अगर यह सेट नहीं है, अगर बयान कभी नहीं होगा ...

if (isset($array[$key]) && $array[$key] == $x) 
{ 
    //do stuff if that key == $x 
} 
3

तुम भी एक संदर्भ का उपयोग हो सकता है: यदि $array[$key] मौजूद नहीं है, तो यह निर्मित और स्थापित किया जाएगा शून्य करने के लिए; इसलिए, कोई त्रुटि नहीं होगी। जब आप मूल्य की मौजूदगी की अपेक्षा करते हैं तो यह सबसे उपयोगी होता है; यानी, यदि आप मूल्य नहीं करते हैं तो आप विशेष रूप से कार्य नहीं करना चाहते हैं।

if (&$array[$key] == $x) { 

} 
0

अगर आप एक साहचर्य सरणी है कुंजी सूचकांक बजाय $ कुंजी

if(sizeof($array) >= $key){ 

    if ($array[$key] == $x) 
    { 
    // do stuff 
    } 

} 
+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/10560732) – exussum

+0

मुझे लगता है कि आपने इसे गलत उत्तर साथी को पोस्ट किया है। मेरा जवाब कोड से बना है और कभी भी कोई लिंक नहीं था! – Kareem

+0

टेक्स्ट को स्वतः उत्पन्न किया गया था।उत्तर केवल कोड है और क्या हो रहा है इसका वर्णन करने के लिए कुछ और चीज होनी चाहिए – exussum

1

बेस्ट दृष्टिकोण के array_key_exists() समारोह उपयोग कर रहा है के लिए सरणी के आकार की तुलना करें।

एक array_key_exists($key,$array);

चेक प्रलेखन link अधिक जानकारी के उदाहरण।

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