दिलचस्प पोस्ट
क्यों है & # 65279; मेरे HTML में दिख रहा है? पीएचपी टर्नेरी ऑपरेटर बनाम स्विच स्टेटमेंट बनाम आईएफएफएफ़ … जो मुझे इस्तेमाल करना चाहिए? 2 डी बिंदु सेट में छेद खोजना? एक्लिप्स सीडीटी इंडेक्सर को सी ++ 11 कंटेनर नहीं पता है क्यों मेरी jQuery: नहीं () चयनकर्ता सीएसएस में काम नहीं कर रहा है? Https.request के साथ node.js में अमान्य स्वयं-हस्ताक्षरित एसएसएल प्रमाणपत्र पर ध्यान न दें? mySQL तिथि करने के लिए varchar कन्वर्ट समय संवेदनशील कोड के परीक्षण के लिए जावा सिस्टम फेसबुक ग्राफ़ एपीआई v2.0 + – / मी / दोस्त खाली, या केवल मेरे आवेदन का उपयोग करने वाले दोस्त हैं PHP की मौत की सफेद स्क्रीन सी # में एक बाइट सरणी में संरचना कैसे परिवर्तित करें? JQuery में एक div तत्व बनाना JSF2 में जेएसटीएल फेसलेट … समझ में आता है? मैं Node.js को कैसे अपडेट करूं? सीखना नियमित अभिव्यक्ति

अग्रवाल सूचकांक कैसे खोजें

क्या यह foreach सूचकांक खोजना संभव है?

में लूप के लिए निम्नानुसार है:

 for($i = 0; $i < 10; ++$i){ echo $i . ' '; } 

$i आपको इंडेक्स देगा

क्या मुझे लूप का उपयोग करना for या क्या foreach लूप में सूचकांक प्राप्त करने का कोई तरीका है?

वेब के समाधान से एकत्रित समाधान "अग्रवाल सूचकांक कैसे खोजें"

 foreach($array as $key=>$value) { // do stuff } 

$key प्रत्येक $array तत्व का सूचकांक है

आप अपने foreach में एक हैक डाल सकते हैं, जैसे प्रत्येक रन-थ्रू पर बढ़े हुए क्षेत्र, जो वास्तव में लूप के for आपको संख्यात्मक-अनुक्रमित सरणी में देता है ऐसा क्षेत्र एक छद्म सूचकांक होगा जो मैन्युअल प्रबंधन (वेतन वृद्धि आदि) की आवश्यकता है।

एक foreach आपको आपके $key मूल्य के रूप में अपने सूचकांक दे देंगे, तो इस तरह के एक हैक आवश्यक नहीं होना चाहिए।

जैसे, एक foreach

 $index = 0; foreach($data as $key=>$val) { // Use $key as an index, or... // ... manage the index this way.. echo "Index is $index\n"; $index++; } 

यह ध्यान दिया जाना चाहिए कि आप वर्तमान कुंजी को अपनी खोज के लिए किसी भी सरणी पर key() को कॉल कर सकते हैं। जैसा कि आप अनुमान कर सकते हैं current() वर्तमान मूल्य वापस करेगा और next() अगले तत्व पर सरणी के सूचक को स्थानांतरित करेंगे

ओवेन का एक अच्छा जवाब है। यदि आप केवल चाबी चाहते हैं, और आप एक सरणी के साथ काम कर रहे हैं तो यह भी उपयोगी हो सकता है।

 foreach(array_keys($array) as $key) { // do stuff } 

आप लूप के बाहर $i बना सकते हैं और लूप के निचले भाग में $i++ कर सकते हैं।

ये दो लूप समकक्ष हैं (बेशक सुरक्षा रेलिंग करते हैं):

 for ($i=0; $i<count($things); $i++) { ... } foreach ($things as $i=>$thing) { ... } 

जैसे

 for ($i=0; $i<count($things); $i++) { echo "Thing ".$i." is ".$things[$i]; } foreach ($things as $i=>$thing) { echo "Thing ".$i." is ".$thing; } 

PHP सरणियों के आंतरिक संकेत दिए गए हैं, इसलिए यह कोशिश करें:

 foreach($array as $key => $value){ $index = current($array); } 

मेरे लिए ठीक काम करता है (केवल बहुत प्रारंभिक परीक्षण किया गया है)

जोनाथन सही है PHP arrays मानों के लिए नक्शा तालिका मानचित्रण कुंजी के रूप में कार्य करते हैं। कुछ मामलों में आप एक इंडेक्स प्राप्त कर सकते हैं यदि आपकी सरणी परिभाषित की जाती है, जैसे कि

 $var = array(2,5); for ($i = 0; $i < count($var); $i++) { echo $var[$i]."\n"; } 

आपका आउटपुट होगा

 2 5 

जिस स्थिति में सरणी में प्रत्येक तत्व ज्ञात सूचक होता है, लेकिन यदि आप निम्न के जैसा कुछ करते हैं

 $var = array_push($var,10); for ($i = 0; $i < count($var); $i++) { echo $var[$i]."\n"; } 

आपको कोई आउटपुट नहीं मिलता है ऐसा इसलिए होता है क्योंकि PHP में सरणियां रैखिक संरचना नहीं होती हैं जैसे वे अधिकांश भाषाओं में हैं वे हैश तालिका की तरह अधिक हैं जो कि सभी संग्रहीत मानों के लिए या नहीं हो सकती हैं। अतः foreach इंडेक्स का उपयोग उन पर क्रॉल करने के लिए नहीं करता है क्योंकि सरणी को परिभाषित किया जाता है क्योंकि उनके पास केवल एक इंडेक्स है। यदि आपको एक इंडेक्स होना चाहिए, तो सुनिश्चित करें कि आपके सरणियां उन पर रेंगने से पहले पूरी तरह परिभाषित हों, और लूप का उपयोग करें।

साहचर्य सरणियों के साथ काम करते समय मैं सामान्यत: ऐसा करता हूं:

 foreach($assoc_array as $key => $value){ //do something } 

यह गैर- associative arrays के साथ भी ठीक काम करेगा $ कुंजी इंडेक्स वेल्यू होगी यदि आप चाहें, तो आप यह भी कर सकते हैं:

 foreach($array as $indx => $value){ //do something } 

मुझे लगता है कि सबसे अच्छा विकल्प समान है:

 foreach($lists as $key=>$value) { echo $key+1; } 

यह आसान और सामान्य रूप से है

 foreach(array_keys($array) as $key) { // do stuff } 
 foreach($arrvariable as $key=>$value){ echo "$key"; }