Назначить значение для объекта #? - PullRequest
0 голосов
/ 25 октября 2011

У меня есть

stdClass Object ( [cart_item_id] => 319299 
[cart_id] => 1 
[nid] => 2140 
[qty] => 15 
[changed] => 1319485739 
[data] => Array ( 
     [gift_description] => ghgfdhfghfh 
     [gift_email] => hgffghhg@gjfdhjk.com
     [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] => hgffghhg@gjfdhjk.com
     [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] => hgffghhg@gjfdhjk.com
     [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] => hgffghhg@gjfdhjk.com
     [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) и взял бы $ item-> data ['price'] и присвоил бы его $ item [ $ х] -> цена

Но я понятия не имею, как это сделать в PHP. Любая помощь?

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Откуда берется петля? Вы говорите о 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 голосов
/ 25 октября 2011

Если у вас есть массив с $item объектами, попробуйте:

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

Редактировать: он работает для массива объектов.Если вы работаете только с одним объектом - опустите foreach и используйте просто:

  $item->title = $item->data['gift_title'];
  $item->price = (float) str_replace('$', '', $item->data['gift_price']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...