2011-12-30 14 views
14

में गतिशील सरणी का निर्माण मैं एक सरणी एक वस्तु का उपयोग कर विभिन्न प्रारूप का उपयोग कर बनाने की जरूरत/संरचनापीएचपी

मेरे पास है:

$t = array(
name = wilson 
first name = phil 

यहाँ क्या करना है:

$t = object() 
$t > user = object() 
$t > user > 0 (object) name = 'wilson'; 
$t > user > 0 (object) first = 'carl'; 

मैं प्राप्त करने की आवश्यकता मैंने कोशिश की और जहां मैं फंस गया हूं

foreach($t as $a) { 
     foreach($a as $l) { 
      $arr[$l->0->name] = $l->0->first; // line 10 
     } 
    } 
    print_r($arr); 

अब मुझे एक त्रुटि मिलती है:

PHP Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$' in homework1-a-1.php on line 10

इसे ठीक करने के लिए मैं क्या कर सकता हूं?

+0

एक सरल वाक्यविन्यास त्रुटि की तरह दिखता है। लाइन 10 नहीं देख सकता है इसलिए कोई विचार नहीं। – Phoenix

+0

मैंने अपने संपादन – natalia

+0

ऑब्जेक्ट गुणों में लाइन 10 डाला है, एक चरित्र के साथ शुरू होना चाहिए। हालांकि, मुझे समझ में नहीं आता है, आप क्या हासिल करना चाहते हैं, क्योंकि ऐसा लगता है कि आपने वस्तुओं और सरणी को थोड़ा सा मिश्रित किया है। – KingCrunch

उत्तर

18

आपका प्रश्न भ्रमित है।

आप निम्न है:

  • $t है, जो एक वस्तु है यह मैं क्या समझ है।
  • $t->user, एक ऑब्जेक्ट भी।
  • $t->user[0]->name = 'wilson'
  • $t->user[0]->first = 'carl'

आप कहते हैं कि आप प्राप्त करने की आवश्यकता:

  • $t->name = 'wilson'
  • $t->first = 'carl'

आप कहते हैं कि प्रश्न में 'फिल' है, लेकिन दिया ऑब्जेक्ट $t में 'फिल' का कोई संदर्भ नहीं है, इसलिए मुझे नहीं पता कि पतली हवा से क्या 'फिल' दिखाई देता है या क्या।

क्या यह समस्या का सही दृश्य है? यदि ऐसा है, तो आपको इस प्रश्न में इसे स्पष्ट करने की आवश्यकता है। कह रहा है $t > user > 0 (object) name कोई मतलब नहीं है।

क्षमा करें यह एक "उत्तर" है, मैं बस टिप्पणी में यह सब फिट नहीं कर सका। यदि आप प्रश्न को स्पष्ट करते हैं तो मैं इसे हटा दूंगा। उम्मीद है कि मैं इस से उलझन में अकेला व्यक्ति नहीं हूं।

+0

धन्यवाद, मैं इस समाधान को पसंद करता हूं – natalia

0
$t = object() 
$t > user = object() 
$t > user > 0 (object) name = 'wilson'; 
$t > user > 0 (object) first = 'carl'; 

यह मान्य PHP कोड नहीं है। आप प्रारूप आपको बताएंगे में $t चाहते हैं, तो बस इस कार्य करें:

$t = array(
'name' => 'wilson', 
'first name' => 'phil' 
); 

अब $t, एक सरणी है कुंजी 'name' और 'first name' साथ।

आपका foreach पाश कोई समझ नहीं आता है। $t दो तारों की एक सरणी है। इसके ऊपर लूपिंग केवल 'wilson' और 'phil' मान देगा।

संपादित करें: मान लिया जाये कि $t आप को दिया गया था, तो अपने पाश के लिए इस तरह दिखना चाहिए:

foreach($t as $a) { 
     foreach($a as $l) { 
      $arr[$l->{0}->name] = $l->{0}->first; 
     } 
    } 

आप $l->0 नहीं कर सकते। {} में आपको 0 को लपेटने की आवश्यकता है। $l->{0}

+0

बिंदु यह एक होमवर्क असाइनमेंट है, ऑब्जेक्ट दिया जाता है, इससे एक सरणी बनाएं। –

+0

@Truth: क्षमा करें, सवाल थोड़ा उलझन में था। '$ T' के लिए" कोड "का कोई मतलब नहीं है, मुझे नहीं पता कि' $ t' कैसा दिखता है। उसके बाद वह कहता है कि वह एक निश्चित प्रारूप में '$ टी' चाहता है (जिसे आपने कहा था), फिर उसके लूप में, वह '$ arr' का संदर्भ देता है। तो, मुझे यकीन नहीं है कि वह क्या चाहता है। –