2012-08-27 9 views
5

मैं एक एपीआई कि मुझे एक stdClass उद्देश्य यह है कि (वास्तविक डेटा की जगह) इस तरह दिखता है देता है के खिलाफ काम कर रहा हूँPHP stdClass ऑब्जेक्ट को बनाने के लिए कैसे एक ही नाम है?

"data": [ 
    { 
     "type": "image", 
     "comments": { 
     "data": [ 
      { 
      "created_time": "1346054211", 
      "text": "Omg haha that's a lot of squats", 
      "from": {}, 
      "id": "267044541287419185" 
      }, 
      { 
      "created_time": "1346054328", 
      "text": "Fit body", 
      "from": {}, 
      "id": "267045517536841021" 
      }, 
     ] 
     }, 
     "created_time": "1346049912", 
    }, 

कैसे है यह संभव तरह "टिप्पणी" सभी एकाधिक उप क्षेत्रों है कि एक stdClass वस्तु बनाने के लिए एक ही नाम के साथ लेकिन अलग डेटा। जब मैं इस तरह की एक stdClass बनाने की कोशिश करता हूं तो मेरी टिप्पणियां अनुभाग में केवल 1 इनपुट होगा जो लूप में अंतिम है। तो नीचे आवेदन करने के बजाय यह पुराने डेटा को नए के साथ बदल रहा है। इसे कैसे ठीक करें?

उत्तर

11

"comments" एक महत्वपूर्ण "data" जो वस्तुओं के सरणी है के साथ एक वस्तु है। आप किसी भी भाषा, JSON, PHP, stdClass या अन्यथा एक ही कुंजी का पुन: उपयोग नहीं कर सकते हैं। आप इसी तरह की वस्तुओं के सर बनाना चाहते हैं।

$comments = new stdClass; 
$comments->data = array(); 

for ($i = 0; $i < 2; $i++) { 
    $comment = new stdClass; 
    $comment->text = 'Lorem ipsum...'; 
    ... 
    $comments->data[] = $comment; 
} 

var_dump($comments); 
+0

अच्छा जवाब। अच्छा उदाहरण :) अगर मुझे आपकी मदद नहीं मिली तो मुझे यह पता लगाने में बहुत समय लगेगा। धन्यवाद! –