2012-12-04 17 views
21

मेरे पास ऑब्जेक्ट्स की एक सरणी है। एक print_r उत्पादन इस तरह दिखता है:PHP Foreach Arrays और ऑब्जेक्ट्स

Array 
(
    [0] => stdClass Object 
     (
      [sm_id] => 1 
      [c_id] => 1 
     ) 
    [1] => stdClass Object 
     (
      [sm_id] => 1 
      [c_id] => 2 

     ) 
) 

मैं वास्तव में हालांकि परिणाम और वस्तु तत्वों का उपयोग पाश करने के लिए एक रास्ता खोजने के लिए संघर्ष कर रहा हूँ। यदि कोई मुझे कोई संकेत दे सकता है तो मैं बहुत आभारी रहूंगा।

अग्रिम धन्यवाद

उत्तर

30

उपयोग

//$arr should be array as you mentioned as below 
foreach($arr as $key=>$value){ 
    echo $value->sm_id; 
} 

या

//$arr should be array as you mentioned as below 
foreach($arr as $value){ 
    echo $value->sm_id; 
} 
+6

ध्यान दें कि '$ कुंजी =>' भाग –

+1

@ExplosionPills की जरूरत नहीं है, तो हम चाहते थे हम भी सूचकांक शामिल हो सकते हैं हां – GBD

+0

सहमत हैं लेकिन '$ key =>' भाग शामिल करने की अनुशंसा की जाती है। इस बेंचमार्क के मुताबिक, लूप दो गुना तेज है, जब आप * $ कुंजी हिस्सा शामिल करते हैं: http://www.phpbench.com/ – Philipp

1

मानते हुए अपने sm_id और c_id गुण सार्वजनिक कर रहे हैं, तो आप उन्हें सरणी पर एक foreach का उपयोग करके पहुँच सकते हैं:

$array = array(/* objects in an array here */); 
foreach ($array as $obj) { 
    echo $obj->sm_id . '<br />' . $obj->c_id . '<br />'; 
} 
+0

सभी को धन्यवाद ... एक बार फिर स्टैक ओवरफ्लो ने मेरी सैनिटी बचाई – AttikAttak

5

सरणी और वस्तुओं पर लूपिंग एक बहुत ही आम काम है, और यह अच्छा है कि आप यह सीखना चाहते हैं कि इसे कैसे किया जाए। आम तौर पर आपको लगता है कि नाम के माध्यम से है कि विशेष सदस्य संभाल की सुविधा देता है, बोलने आप प्रत्येक सदस्य पर एक foreach loop जो चक्र कर सकते हैं यह कोई नया अस्थायी नाम बताए, और उसके बाद:

foreach ($arr as $item) { 
    echo $item->sm_id; 
} 

इस उदाहरण में $arr में हमारे मूल्यों के प्रत्येक होगा $item के रूप में उपयोग किया जा सकता है। तो हम अपने मूल्यों को सीधे उस से प्रिंट कर सकते हैं।

foreach ($arr as $index => $item) { 
    echo "Item at index {$index} has sm_id value {$item->sm_id}"; 
} 
2

रिकर्सिव पार वस्तु या सरणी सरणी के साथ या तत्वों वस्तुओं:

function traverse(&$objOrArray) 
{ 
    foreach ($objOrArray as $key => &$value) 
    { 
     if (is_array($value) || is_object($value)) 
     { 
      traverse($value); 
     } 
     else 
     { 
      // DO SOMETHING 
     } 
    } 
} 
संबंधित मुद्दे