构建动态数组在PHP

问题描述:

我需要创建使用对象使用不同格式的数组/结构构建动态数组在PHP

我:

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

我需要得到:

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

这里是我试过了,我卡在哪里

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 2011-12-30 21:21:24

+0

我把第10行放在我的编辑 – natalia 2011-12-30 21:22:24

+0

对象属性必须以字符开头。然而,我不明白,你想达到什么,因为看起来,你混合了一些对象和数组。 – KingCrunch 2011-12-30 21:23:18

你的问题很混乱。这是我的理解:

您有以下几点:

  • $t,这是一个对象。
  • $t->user,也是一个对象。
  • $t->user[0]->name = 'wilson'
  • $t->user[0]->first = 'carl'

你说你需要得到:

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

你说 '菲尔' 的问题,而是给定对象$t没有提到'phil',所以我不知道'phil'是凭空出现的,还是什么。

这是一个正确的问题?如果是这样,你需要在问题中澄清这一点。说$t > user > 0 (object) name是没有意义的。

对不起,这是一个“答案”,我只是无法适应所有这一切的评论。如果你澄清了这个问题,我会删除它。希望我不是唯一被这个困惑的人。

+0

谢谢,我更喜欢这个解决方案 – natalia 2011-12-30 22:24:00

$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是给你的,那么你的for循环应该是这样的:

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

你不能这么做$l->0。您需要将0包装在{}中。 $l->{0}

+0

重点是它是一项家庭作业的任务,给出的对象,从它建立一个数组。 – 2011-12-30 21:36:18

+0

@Truth:对不起,这个问题有点令人困惑。 “$ t”的“代码”没有意义,我不知道“$ t”是什么样的。然后他说他想用某种格式(你说过的)给出'$ t',然后在他的循环中引用'$ arr'。所以,我不确定他想要什么。 – 2011-12-30 21:38:26