我有以下PHP代码来为每个帖子设置parentId。 每个数据的parentId全部成为最后的帖子ID。 我的逻辑有什么问题?PHP循环通过对象数组得到意想不到的结果
顺便说一句,如果我将它改为数组,一切都会变好。请帮忙!
$data = array(
(object)array('name' => 'myname')
);
$posts = array(
(object)array('ID' => 1, 'data'=>$data),
(object)array('ID' => 2, 'data'=>$data),
(object)array('ID' => 3, 'data'=>$data)
);
foreach($posts as &$post){
$post->data[0]->parentId = $post->ID;
}
print '<pre>';print_r($posts);die;
die;
结果:
Array
(
[0] => stdClass Object
(
[ID] => 1
[data] => Array
(
[0] => stdClass Object
(
[name] => myname
[parentId] => 3 // expect to be 1
)
)
)
[1] => stdClass Object
(
[ID] => 2
[data] => Array
(
[0] => stdClass Object
(
[name] => myname
[parentId] => 3 // expect to be 2 !!!
)
)
)
[2] => stdClass Object
(
[ID] => 3
[data] => Array
(
[0] => stdClass Object
(
[name] => myname
[parentId] => 3
)
)
)
)
试试这个http://phpfiddle.org/main/code/yq2-jv3 – 2013-08-29 08:25:34