我有购物车数据,我想使用贝宝,然后我想将购物车数据制作成这种格式
代码:
$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));
答案 0 :(得分:1)
PHP允许您动态创建变量的名称 例如:
<?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;
}
转储定义的变量会显示:
print_r(get_defined_vars());
<强>输出强>
[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
)
答案 1 :(得分:1)
您可以先在assoc数组中定义不同的数据:
$data = array(
array(
'quantity' => 1,
'price' => '15'),
... // etc
);
然后迭代它并添加到结果数组:
$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);