带逻辑参数的 PHP 多维数组(有些脑筋急转弯)
问题: 我有一个来自 magento 的变量,存储在模型类中,可以这样获取:
$productArray[] = array();
foreach ($order->getAllItems() as $item) {
$productArray[] = array(
"product" => $item->getName(),
"qty" => $item->getQtyOrdered(),
"amount" => $item->getPrice(),
);
}
这是 print_r $productArray[]:
的值 示例输出 1:
array(1) {
[0]=>
array(3) {
["product_name"]=>
string(12) "Test Product"
["product_qty"]=>
string(6) "2.0000"
["product_price"]=>
string(7) "12.0000"
}
}
示例输出 2:
array(2) {
[0]=>
array(3) {
["product_name"]=>
string(12) "Test Product"
["product_qty"]=>
string(6) "2.0000"
["product_price"]=>
string(7) "12.0000"
}
[1]=>
array(3) {
["product_name"]=>
string(6) "Test 2"
["product_qty"]=>
string(6) "5.0000"
["product_price"]=>
string(7) "22.0000"
}
}
你怎样才能做到这样?(应该这样打印)
如果输出1:最终输出1
<input type="hidden" name="product" value="Test Product" />
<input type="hidden" name="amount" value="24.00" />
如果输出2:最终输出2
<input type="hidden" name="product1" value="Test Product" />
<input type="hidden" name="amount1" value="24.00" />
<input type="hidden" name="product2" value="Test 2" />
<input type="hidden" name="amount2" value="110.00" />
金额值将被输入 产品价格 * 产品数量。
玩得开心:) 这只是一个虚拟问题,但这对其他人可能有帮助
Problem:
I have a variables from magento that stored in the model class and can be get as
$productArray[] = array();
foreach ($order->getAllItems() as $item) {
$productArray[] = array(
"product" => $item->getName(),
"qty" => $item->getQtyOrdered(),
"amount" => $item->getPrice(),
);
}
This are the values if print_r the $productArray[]:
Sample Output 1:
array(1) {
[0]=>
array(3) {
["product_name"]=>
string(12) "Test Product"
["product_qty"]=>
string(6) "2.0000"
["product_price"]=>
string(7) "12.0000"
}
}
Sample Output 2:
array(2) {
[0]=>
array(3) {
["product_name"]=>
string(12) "Test Product"
["product_qty"]=>
string(6) "2.0000"
["product_price"]=>
string(7) "12.0000"
}
[1]=>
array(3) {
["product_name"]=>
string(6) "Test 2"
["product_qty"]=>
string(6) "5.0000"
["product_price"]=>
string(7) "22.0000"
}
}
And how can you make it like this?(should be print like this)
If output 1: Final Output 1
<input type="hidden" name="product" value="Test Product" />
<input type="hidden" name="amount" value="24.00" />
If output 2: Final Output 2
<input type="hidden" name="product1" value="Test Product" />
<input type="hidden" name="amount1" value="24.00" />
<input type="hidden" name="product2" value="Test 2" />
<input type="hidden" name="amount2" value="110.00" />
The amount value will be get in
product_price * product_qty.
Have some fun :)
This is only a dummy problem, but this can be helpful to others
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
像这样:
希望这有帮助。干杯
Like this:
Hope this helps. Cheers
不确定 magento 但在正常的 php 中它会是:
not sure about magento but in normal php it would be:
在 php 中创建表单字段数组时,使用“product[$id]”作为名称,然后 php 将在 $_POST 中返回一个整齐的数组。你甚至可以执行 name="product[$id][price]" 并且你会得到一个二维数组。
请注意,如果您的网上商店在结账时信任隐藏的表单数据来拖拽购物车(正如您似乎所做的那样),您就会遇到一个巨大的安全漏洞,因此请发布网址,我想免费订购东西!
When making arrays of form fields in php, use "product[$id]" as the name, then php will regurgitate a neat array in $_POST. You can even do name="product[$id][price]" and you'll get a 2D array.
Note that if your webshop trusts hidden form data to haul around the cart during checkout (as you seem to do) you got a gaping security hole, so please post the web address, I'd like to order stuff for free !