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 に答える