2011-10-25 7 views
0

私は今、私が何をしたいのかオブジェクトに値を割り当てますか?

stdClass Object ([cart_item_id] => 319299 
[cart_id] => 1 
[nid] => 2140 
[qty] => 15 
[changed] => 1319485739 
[data] => Array ( 
    [gift_description] => ghgfdhfghfh 
    [gift_email] => [email protected] 
    [gift_sender] => gfdhgfdhgfdhgf 
    [gift_sendDate] => 2011-10-24 
    [gift_title] => gfdgfdgdf 
    [gift_card] => 2130 
    [gift_price] => $26 
    [module] => uc_product 
) 
[title] => Gift Card 
[vid] => 2140 
[cost] => 0 
[price] => 1 
[weight] => 0 
[module] => uc_product 
[model] => giftcard 
) stdClass Object ([cart_item_id] => 319299 
[cart_id] => 1 
[nid] => 2140 
[qty] => 15 
[changed] => 1319485739 
[data] => Array ( 
    [gift_description] => ghgfdhfghfh 
    [gift_email] => [email protected] 
    [gift_sender] => gfdhgfdhgfdhgf 
    [gift_sendDate] => 2011-10-24 
    [gift_title] => gfdgfdgdf 
    [gift_card] => 2130 
    [gift_price] => $26 
    [module] => uc_product 
) 
[title] => Gift Card 
[vid] => 2140 
[cost] => 0 
[price] => 1 
[weight] => 0 
[module] => uc_product 
[model] => giftcard 
) ... etc 

を持っているが(例えばforeachの)これらのセットのそれぞれをループであり、データの価格とタイトルを取ると価格とタイトルに割り当てます。だから私は結局終わるだろう。

stdClass Object ([cart_item_id] => 319299 
[cart_id] => 1 
[nid] => 2140 
[qty] => 15 
[changed] => 1319485739 
[data] => Array ( 
    [gift_description] => ghgfdhfghfh 
    [gift_email] => [email protected] 
    [gift_sender] => gfdhgfdhgfdhgf 
    [gift_sendDate] => 2011-10-24 
    [gift_title] => gfdgfdgdf 
    [gift_card] => 2130 
    [gift_price] => $26 
    [module] => uc_product 
) 
[title] => Gift Card 
[vid] => 2140 
[cost] => 0 
[price] => 1 
[weight] => 0 
[module] => uc_product 
[model] => giftcard 
) stdClass Object ([cart_item_id] => 319299 
[cart_id] => 1 
[nid] => 2140 
[qty] => 15 
[changed] => 1319485739 
[data] => Array ( 
    [gift_description] => ghgfdhfghfh 
    [gift_email] => [email protected] 
    [gift_sender] => gfdhgfdhgfdhgf 
    [gift_sendDate] => 2011-10-24 
    [gift_title] => gfdgfdgdf 
    [gift_card] => 2130 
    [gift_price] => $26 
    [module] => uc_product 
) 
[title] => Gift Card 
[vid] => 2140 
[cost] => 0 
[price] => 1 
[weight] => 0 
[module] => uc_product 
[model] => giftcard 
) ... etc 

しかし、私は、各セット(この例では$アイテム)をループし、[「価格」] $アイテム - >データを取得し、それを割り当てるのと通常の配列で、今、それぞれのためにそれをやってみたいです$ item [$ x] - > price

しかし、私はそれをPHPでどうやって行うのか分かりません。どんな助け?あなたは$itemオブジェクトの配列を持っている場合は

答えて

0

$item->title = $item->data['gift_title']; 
    $item->price = (float) str_replace('$', '', $item->data['gift_price']); 
?あなたは foreachについて話しますが、反復する必要がある以上の例は提供していません。

あなたは、このような「コピー」の値ができます:あなたはをループにしたい、これらのオブジェクトの配列を持っている場合

$object->title = $object->data['gift_title']; 
$object->price = (float) ltrim($object->data['gift_price'],'$'); 

...そして、あなたはこれを行うことができます。

foreach ($arrayOfObjects as &$object) { 
    // Note the use of & to get a reference and make sure we modify 
    // the actual object, not a copy of it 
    $object->title = $object->data['gift_title']; 
    $object->price = (float) ltrim($object->data['gift_price'],'$'); 
} 
+0

これは、各値を1つずつ返します。したがって、オブジェクトはtitle、vidなどとなります。むしろ、各値を持つ単一のオブジェクトをアクセス可能なオブジェクトとして扱います。 – Steven

+0

最初のコードを参照してください。秒ではありません。 – DaveRandom

0

はしてみてください:

foreach ($items as &$item) { 
    $item->title = $item->data['gift_title']; 
    $item->price = (float) str_replace('$', '', $item->data['gift_price']); 
} 

は編集:それは、オブジェクトの配列のために動作します。あなただけの単一のオブジェクトで作業する場合 - OMMIT foreachのとちょうど使用:

ループから来たん
+0

以下の理由と同じ理由で動作しません。 – Steven

+0

@Stevenは私の編集を見ます。 – hsz

関連する問題