0

我想知道如何将未在类中声明的属性添加到对象中。

让我解释 :

我有我的订单:

 [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));

    }

但我不知道最后如何专门针对单个对象(你看到关键???),我想获得相关用户的属性到该顺序。

我怎样才能做到这一点 ?

谢谢你 !

4

1 回答 1

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] 语法来在访问每个对象的属性之前先访问每个数组元素。

请注意,问题中的数据结构和您的意图都有些不清楚,因此如果这不能解决您的问题,您可能需要提供更多上下文。

于 2012-07-20T15:35:08.363 回答