सरणी php के माध्यम से लूप करें


109

मेरे पास यह सरणी है ... आप फ़ाइलपथ और फ़ाइल नाम में से प्रत्येक को कैसे प्रिंट करते हैं? इसे करने का बेहतरीन तरीका क्या है?

  Array ( 
    [0] => Array ( 
             [fid] => 14 
             [list] => 1 
             [data] => Array ( 
                         [alt] => 
                         [title] => 
                       )
             [uid] => 1 
             [filename] => trucks_10785.jpg 
             [filepath] => sites/default/files/trucks_10785.jpg 
             [filemime] => image/jpeg 
             [filesize] => 143648 
             [status] => 1 
             [timestamp] => 1291424171 
             [nid] => 8 
           ) 
    [1] => Array ( 
             [fid] => 19 
             [list] => 1 
             [data] => Array ( 
                         [alt] => 
                         [title] => 
                       ) 
             [uid] => 1 
             [filename] => school.jpg 
             [filepath] => sites/default/files/school.jpg 
             [filemime] => image/jpeg 
             [filesize] => 115355 
             [status] => 1 
             [timestamp] => 1292029563 
             [nid] => 8 
           ) 
    [2] => Array ( 
             [fid] => 20 
             [list] => 1 
             [data] => Array ( 
                         [alt] => 
                         [title] => 
                       )     
             [uid] => 1 
             [filename] => Life_is_wonderful_by_iNeedChemicalX.jpg 
             [filepath] => sites/default/files/Life_is_wonderful_by_iNeedChemicalX_0.jpg 
             [filemime] => image/jpeg 
             [filesize] => 82580 
             [status] => 1 
             [timestamp] => 1292029572 
             [nid] => 8 
           )
    [3] => Array ( 
             [fid] => 21 
             [list] => 1 
             [data] => Array ( 
                         [alt] => 
                         [title] => 
                       ) 
             [uid] => 1 
             [filename] => school_rural.jpg 
             [filepath] => sites/default/files/school_rural.jpg 
             [filemime] => image/jpeg 
             [filesize] => 375088 
             [status] => 1 
             [timestamp] => 1292029582 
             [nid] => 8 
           ) 
  ) 

foreach ($ नोड-> field_image as & $ value) {प्रिंट_आर ($ मूल्य); इको "<br/> <hr />"; }
एसाफवान

जवाबों:


260

foreachचाबी के बिना लूप का उपयोग करना

foreach($array as $item) {
    echo $item['filename'];
    echo $item['filepath'];

    // to know what's in $item
    echo '<pre>'; var_dump($item);
}

foreachकुंजी के साथ लूप का उपयोग करना

foreach($array as $i => $item) {
    echo $item[$i]['filename'];
    echo $item[$i]['filepath'];

    // $array[$i] is same as $item
}

forलूप का उपयोग करना

for ($i = 0; $i < count($array); $i++) {
    echo $array[$i]['filename'];
    echo $array[$i]['filepath'];
}

var_dump किसी सरणी या ऑब्जेक्ट का स्नैपशॉट प्राप्त करने के लिए वास्तव में उपयोगी फ़ंक्शन है।


3
यह भी चेकआउट करें var_export, जो वैध PHP कोड प्रिंट करता है। आप उस फ़ाइल को सहेज सकते हैं, फिर अपने मुख्य कोड में डालने से पहले उस पर लूप का कोड लिखें।
बेन

यहाँ पाश विधि का उपयोग करने के साथ एक समस्या है। मैंने कहीं पढ़ा कि सूचकांक मौजूद नहीं हो सकता है ??
बकलोलो

1
यदि इंडेक्स को परिभाषित नहीं किया जाता है ['a', 'b', 'c'], तो यह मान 0,1 और 2. है
ईश

11

ठीक है, मुझे पता है कि एक स्वीकृत उत्तर है लेकिन ... अधिक विशेष मामलों के लिए आप भी इस का उपयोग कर सकते हैं:

array_map(function($n) { echo $n['filename']; echo $n['filepath'];},$array);

या अधिक गैर-जटिल तरीके से:

function printItem($n){
    echo $n['filename'];
    echo $n['filepath'];
}

array_map('printItem', $array);

यह आपको आसान तरीके से डेटा में हेरफेर करने की अनुमति देगा।


6

बिना HTML के, सरल शुरुआत करना:

foreach($database as $file) {
    echo $file['filename'] . ' at ' . $file['filepath'];
}

और आप अन्यथा फ़ॉर्च में खेतों में हेरफेर कर सकते हैं।


2
foreach($array as $item=>$values){
     echo $values->filepath;
    }

3
तीन अन्य मौजूदा उत्तरों के साथ आठ साल पुराने प्रश्न का उत्तर देते समय यह बताना उपयोगी होता है कि आपका उत्तर प्रश्न के लिए क्या नया दृष्टिकोण लाता है। साथ ही इस मामले में सवाल यह था कि "प्रत्येक फ़ाइलपथ और फ़ाइल नाम को मुद्रित करना" न कि सिर्फ फ़ाइलपथ को प्रिंट करना।
जेसन एलेर

1
यह जोर से गूंज $ मान ['फ़ाइलपथ'] होना चाहिए; $ मानों के लिए एक सरणी है, वस्तु नहीं है।
डैनियल Faure

-1

आप अतिरिक्त चर बनाए बिना भी इसका उपयोग कर सकते हैं और न ही फ़ॉरच (जैसे) मेमोरी में डेटा की प्रतिलिपि बना सकते हैं।

while (false !== (list($item, $values) = each($array)))
{
    ...
}

2
प्रत्येक फ़ंक्शन को PHP 7.2.0 के रूप में चित्रित किया गया है। "इस फंक्शन पर भरोसा करना बहुत हतोत्साहित करता है" php.net/manual/en/function.each.php
asiop
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.