2011-10-25 5 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로 그 방법을 모릅니다. 어떤 도움이 필요합니까?

답변

0

어디에서 루프가 생성됩니까? 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

각 값을 한 번에 하나씩 반환합니다. 따라서 객체는 제목, vid 등이됩니다. 그 대신 하나의 객체가 각 값을 가지고 접근 가능한 객체로 나타납니다. – Steven

+0

두 번째가 아닌 첫 번째 코드를 참조하십시오. – DaveRandom

0

당신은 $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']); 
+0

다음과 같은 이유로 작동하지 않습니다. – Steven

+0

@Steven 내 편집을보세요. – hsz