हमारे पास एक सरणी है जिसमें कुंजी स्ट्रिंग हैं, लेकिन कभी-कभी वे स्ट्रिंग संख्याएं होती हैं (उदा। "123")। कुंजी "123" द्वारा सरणी तक पहुंचने का प्रयास करते समय, हमें एक अनिर्धारित इंडेक्स नोटिस मिलता है। केवल पूर्णांक 123 तक इसे एक्सेस करते समय, हमें अपरिभाषित ऑफसेट नोटिस मिलता है। यह हमें बताता है कि हम "123" स्ट्रिंग का उपयोग करके इसे सही तरीके से अनुक्रमित करने का प्रयास कर रहे हैं, लेकिन यह अभी भी सेट नहीं है।स्ट्रिंग कुंजी एक्स द्वारा एक्सेस सरणी, जहां x "123"
इस SO प्रश्न के लिए उदाहरण के साथ आने का प्रयास करना मुश्किल है, क्योंकि PHP हमारे परीक्षण मामले में सरणी कुंजी को स्वचालित रूप से पूर्णांक में परिवर्तित करता है, जबकि हमारे असली दुनिया में यह ऐसा नहीं होता है (जावा के उपयोग के कारण) पुल)। परीक्षण सरणी अब हम कोशिश कर रहे हैं:
<?php
$array = array("123" => array(108, 8));
var_dump($array);
?>
यह रिटर्न:
array(1) { [123]=> array(2) { [0]=> int(108) [1]=> int(8) } }
हमारे वास्तविक दुनिया बराबर में है, यह वापसी होगी:
array(1) { ["123"]=> array(2) { [0]=> int(108) [1]=> int(8) } }
तो असली में दुनिया सूचकांक वास्तव में एक स्ट्रिंग है:
<?php
var_dump(array_keys($array));
?>
<?php
foreach ($array as $key => $value) {
if (!isset($array[$key])) {
print "What is happening here?";
}
}
?>
जो देता है::
What is happening here?
योशी की टिप्पणी के आधार पर, यहाँ काम कर रहा है परीक्षण कोड:
210 रिटर्नarray(1) { [0]=> string(3) "123" }
तो, अंत में सवाल निम्नलिखित कोड का उत्पादन होता है
<?php
$array = (array)json_decode('{"123":[108,8]}');
foreach ($array as $key => $value) {
if (!isset($array[$key])) {
print "What is happening here?";
} else {
print "Nothing to see here, move along";
}
}
?>
अपने प्रश्न के लिए उत्तर पर तुम्हारी मदद नहीं कर सकता:
यहाँ मेरी समाधान है। लेकिन अगर आप '$ array = (array) json_decode (' {"123": [108,8]} ') का उपयोग करते हैं, तो आपको अपना असली उदाहरण मिलेगा (जिसमें' 123' स्ट्रिंग कुंजी के रूप में) होगा। शायद यह दूसरों को समस्या को पुन: उत्पन्न करने में मदद करेगा। – Yoshi
(संदर्भ) http: // कोडेपैड।संगठन/ewMJyKDU मुझे लगता है कि यह वास्तव में एक दिलचस्प सवाल है। और उम्मीद है कि कोई व्यवहार पर कुछ प्रकाश साझा कर सकता है। – Yoshi