php in array returning false when value does exist -


यहाँ एक सरल, लेकिन लोगों को सिर को चोट पहुंचाई।

  इको इन_रेरे ('275' $ searchMe);   

वापस लौट रहा है I लेकिन अगर मैं सरणी को प्रिंट करता हूं और मैन्युअल रूप से अपने वेब ब्राउजर का उपयोग करके इसे खोजता हूं तो मुझे यह देखने में सक्षम है कि मान सरणी में मौजूद है।

  [0] = & gt; ExtrasInfoType ऑब्जेक्ट ([मानदंड] = & gt; [कोड] = & gt; 275 [प्रकार] = & gt; 15 [नाम] = & gt; पेन)   

अतिरिक्त जानकारी सरणी को एक ऑब्जेक्ट से एक सरणी में एन्टर किया गया है

  $ searchMe = (array) $ ऑब्जेक्ट;   

क्या ऐसा इसलिए होगा क्योंकि मूल्य उद्धृत नहीं हैं? मैंने in_array फ़ंक्शन के साथ निम्नलिखित का उपयोग करने की कोशिश की है:

  echo in_array ('275', $ searchMe); // रिटर्न गलत इको in_array (275, $ searchMe); // रिटर्न त्रुटि (नोटिस: क्लास एक्स्ट्रास्ट्रस का ऑब्जेक्ट को इंट में परिवर्तित नहीं किया जा सकता है)   

$ searchMe के var_dump

  सरणी 'एक्स्ट्रास' = & gt ; वस्तु (अतिरिक्त) [6] सार्वजनिक 'अतिरिक्त' = & gt; सरणी 0 = & gt; वस्तु (ExtrasInfoType) [7] ... 1 = & gt; ऑब्जेक्ट (एक्स्ट्रास इन्फाई टाइप) [17] ... 2 = & gt; वस्तु (ExtrasInfoType) [27] ...    

इन_रेरे ExtraInfoType ऑब्जेक्ट के अंदर नहीं देख सकता। असल में इसकी तुलना ExtrasInfoType ऑब्जेक्ट से 275 , जो इस मामले में false देता है।

Comments