构建动态数组在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
我该怎么办才能修复它?
你的问题很混乱。这是我的理解:
您有以下几点:
-
$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
是没有意义的。
对不起,这是一个“答案”,我只是无法适应所有这一切的评论。如果你澄清了这个问题,我会删除它。希望我不是唯一被这个困惑的人。
谢谢,我更喜欢这个解决方案 – 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}
。
重点是它是一项家庭作业的任务,给出的对象,从它建立一个数组。 – 2011-12-30 21:36:18
@Truth:对不起,这个问题有点令人困惑。 “$ t”的“代码”没有意义,我不知道“$ t”是什么样的。然后他说他想用某种格式(你说过的)给出'$ t',然后在他的循环中引用'$ arr'。所以,我不确定他想要什么。 – 2011-12-30 21:38:26
看起来像一个简单的语法错误。不能看到第10行,所以不知道。 – Phoenix 2011-12-30 21:21:24
我把第10行放在我的编辑 – natalia 2011-12-30 21:22:24
对象属性必须以字符开头。然而,我不明白,你想达到什么,因为看起来,你混合了一些对象和数组。 – KingCrunch 2011-12-30 21:23:18