दिलचस्प पोस्ट
डुप्लिकेट कुंजी पर ध्यान न दें? कोको कस्टम अधिसूचना उदाहरण कैसे मेवेन के माध्यम से JSF पुस्तकालयों को ठीक से स्थापित और कॉन्फ़िगर करें? इकाई फ़्रेमवर्क रिफ़्रेश प्रसंग? ग्रन्ट घड़ी त्रुटि – प्रतीक्षारत … घातक त्रुटि: देखें ENOSPC इकाई फ़्रेमवर्क में कई कॉलम के लिए अद्वितीय कुंजी बाधाएं ऑप्शन के लिए स्प्रिंग सिक्योरिटी एचटीपी विधि अक्षम करें मैं पायथन में एनएएन के लिए कैसे जांच सकता हूं? मैं कैसे जांचूं अगर कोई स्ट्रिंग में कोई विशिष्ट शब्द होता है? सरणी में लाइन घोषित करने का कोई तरीका? नियमित NumPy सरणी के लिए संरचित सरणी परिवर्तित करें स्विंगवार्कर, थ्रेड.sleep (), या javax.swing.timer? मुझे "एक विराम डालें" की आवश्यकता है Android TimePickerDialog अधिकतम समय सेट करें एक्सएमएल में एचटीएमएल-फ़ॉर्मेट स्ट्रिंग संसाधन से टेक्स्टव्यू टेक्स्ट सेट करें बैकटीक (`) के उपयोग के बारे में एसक्यूएल मानक क्या कहते हैं?

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

क्या यह 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"; }