Reputation: 138
I have Cart Data and i want to use paypal then i want to make cart data into this formate
Code:
$item_1 = new Item();
$item_1->setName('Item 1') // item name
->setCurrency('USD')
->setQuantity(2)
->setPrice('15'); // unit price
$item_2 = new Item();
$item_2->setName('Item 2')
->setCurrency('USD')
->setQuantity(4)
->setPrice('7');
$item_3 = new Item();
$item_3->setName('Item 3')
->setCurrency('USD')
->setQuantity(1)
->setPrice('20');
// add item to list
$item_list = new ItemList();
$item_list->setItems(array($item_1, $item_2, $item_3));
Upvotes: 1
Views: 831
Reputation: 46
You can define varying data in assoc array first:
$data = array(
array(
'quantity' => 1,
'price' => '15'),
... // etc
);
Then iterate over it and add to result array:
$result = array();
for($i = 0; $i < count($data); ++$i) {
$obj = new Item();
$obj->setName('Item ' . ($i+1)) // item name
->setCurrency('USD')
->setQuantity($data[i]['quantity'])
->setPrice($data[i]['price']);
$result[] = $obj;
}
$item_list = new ItemList();
$item_list->setItems($result);
Upvotes: 1
Reputation: 7805
PHP allows you to create variable's name dynamically ex :
<?php
class A {
public $member;
}
for($i=0 ; $i<5 ; $i++) {
$var_pattern = sprintf('item_%s', ($i+1));
${$var_pattern} = new A();
${$var_pattern}->member = $i;
}
Dumping defined variables will show you that :
print_r(get_defined_vars());
output
[item_1] => A Object
(
[member] => 0
)
[item_2] => A Object
(
[member] => 1
)
[item_3] => A Object
(
[member] => 2
)
[item_4] => A Object
(
[member] => 3
)
[item_5] => A Object
(
[member] => 4
)
Upvotes: 1