2011-11-01 11 views
5

में एरे इंडेक्स कैसे प्राप्त करें मेरे पास एक एसोसिएटिव सरणी को फिर से चलाने के लिए php में फ़ोरैच लूप है। लूप के भीतर, एक चर को बढ़ाने के बजाय मैं वर्तमान तत्व की संख्यात्मक अनुक्रमणिका प्राप्त करना चाहता हूं। क्या यह संभव है।फोरैच

$arr = array('name'=>'My name','creditcard'=>'234343435355','ssn'=>1450); 
foreach($arr as $person){ 
    // want index here 
} 

मैं आमतौर पर इसे पाने के लिए करते हैं सूचकांक:

$arr = array('name'=>'My name','creditcard'=>'234343435355','ssn'=>1450); 
    $counter =0; 
    foreach($arr as $person){ 
     // do a stuff 
$counter++; 
    } 
+0

एक सहयोगी सरणी के लिए संख्यात्मक सूचकांक क्या उपयोग है? – Sonny

उत्तर

18

कुंजी का उपयोग करने के ($index के रूप में) foreach को यह वाक्य रचना का उपयोग करें और ($person के रूप में) मूल्य

foreach ($arr as $index => $person) { 
    echo "$index = $person"; 
} 

यह समझाया गया है in the PHP foreach documentation.

2

आपको संख्यात्मक सूचकांक सहयोगी सरणी के अंदर क्यों चाहिए? साहचर्य सरणी मनमाने ढंग से मूल्यों मनमाने ढंग से मूल्यों के लिए, की तरह अपने उदाहरण में तार और संख्या के नक्शे, तार:

$assoc = [ 
    'name'=>'My name', 
    'creditcard'=>'234343435355', 
    'ssn'=>1450 
]; 

संख्यात्मक सरणियों मनमाने ढंग से मूल्यों के लगातार संख्या मैप करें। अपने उदाहरण में अगर हम सब स्ट्रिंग कुंजी निकालने के लिए, नंबरिंग इस तरह होगा:

$numb = [ 
    0=>'My name', 
    1=>'234343435355', 
    2=>1450 
]; 

पीएचपी में आप इस मामले में कुंजी निर्दिष्ट करने के लिए की जरूरत नहीं है, यह उन्हें खुद को उत्पन्न करता है।

foreach ($arr as $index => $value) 

तुम पर क्रमांकित सरणी पुनरावृति हैं, $index संख्या मान होगा: अब, foreach बयान में कुंजी पाने के लिए, आप निम्नलिखित फार्म, @MichaelBerkowski की तरह आप पहले से ही पता चला का उपयोग करें। यदि आप assoc सरणी पर पुनरावृत्त करते हैं, तो आपके पास निर्दिष्ट कुंजी के मान होंगे।

गंभीरता से, मैं यह सब क्यों वर्णन कर रहा हूं ?! मैनुअल से सीधे यह सामान्य ज्ञान है!

:

अब, अगर आप कुछ मनमाने ढंग से कुंजी के साथ एक साहचर्य सरणी है और आप मूल्यों के गिने स्थिति पता होना चाहिए और आप कुंजियों के बारे में परवाह नहीं है, तुम पर array_values का परिणाम अपने सरणी पर पुनरावृति कर सकते हैं

$counter = 0; 
foreach ($assoc as $key => $value) 
{ 
    // do stuff with $key and $value 
    ++$counter; 
} 

या कुछ screwe:

foreach (array_values($assoc) as $value) // etc 

लेकिन अगर आप कुंजियों के बारे में देखभाल कर , आप अतिरिक्त काउंटर, उपयोग करने के लिए की तरह आप अपने आप को दिखाया गया है array_reduce के साथ डी कार्यात्मक शैली की सामग्री, कोई फर्क नहीं पड़ता।

+0

lol धन्यवाद @hijarian। जैसा कि 5 साल पहले पूछा गया था। अब मैंने PHP –

+0

@MarthaJames bwahaha, necroposting पर पुस्तकें लिखी हैं! :) – hijarian

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