我想知道如何将未在类中声明的属性添加到对象中。
让我解释一下:
我有我的订单:
[0] => stdClass Object
(
[quantityBlack] => 3
[quantityBlue] => 1
[quantityGreen] => 0
[quantityOrange] => 0
[quantityPurple] => 0
[quantityRed] => 0
[dateOfOrder] => Fri, 06 Jul 12 22:21
[user_id] => 5
[comments] => Test
)
我希望用用户的属性替换user_id,
所以我想做的是:
foreach ($data['orders'] as $key => $order){
$data['orders']->$key???-> = $this->user_model->GetUsers(array('userId' => $order->user_id));
}
但是我不知道如何专门针对单个对象(你看到密钥???),我希望得到相关用户的属性到那个顺序。
我该怎么做?
谢谢!
答案 0 :(得分:3)
如果我理解您的数据结构,您正在寻求执行以下操作:
foreach($data['orders'] as $key => $order) {
$data['orders'][$key]->user = $this->user_model->GetUsers(array('userId' => $data['orders'][$key]->user_id));
unset($data['orders'][$key]->user_id);
}
我假设$ data ['orders']是一个包含一堆stdClass对象的数组,就像问题中引用的一样,因此在这种情况下你会使用$ data ['orders'] [$ key ]在访问每个对象的属性之前,首先访问每个数组元素的语法。
请注意,问题中的数据结构和你的意图有点不清楚,所以如果这不能解决你的问题,你可能想要提供更多的背景。