面对一个非标准的任务。在 Opencart 3 在线商店的购物篮中,货物整齐排列。第一个任务是按制造商对它们进行排序,并将制造商的名称分配到数组的顶层以形成一个组和一个子组。
Имя производителя
Товар 1
Товар 2
Товар 3
这个问题是这样解决的:
usort($data['products'], function($a, $b) {
return $a['manufacturer'] <=> $b['manufacturer'];
});
$res = [];
foreach ($data['products'] as $x) {
$res[$x['manufacturer']][] = $x;
}
接下来是第二个任务。输出这组产品的名称(这是制造商的名称)和这些产品的数量,使其看起来像这样:
Имя магазина 1 - 343$
Имя магазина 2 - 678$
...
为此,我对前面的代码进行了更改。
$res = [];
foreach ($data['products'] as $x) {
$res[$x['manufacturer']][] = $x['price'];
}
我得到了这个数组:
Array
(
[Bykilian] => Array
(
[0] => 179.00 $
[1] => 80.00 $
[2] => 108.00 $
)
[Kidsnail] => Array
(
[0] => 194.00 $
)
[Longstormaier] => Array
(
[0] => 199.00 $
[1] => 150.00 $
[2] => 84.00 $
)
)
现在您需要以某种方式计算每个组中的数量并将其带到前端。卡在这个阶段。谁会有想法?
添加时可以计算物品的数量(如果价格只是一个数字,没有$符号):
在这种情况下,数组将如下所示:
Z.Y. 如果您使用 $ 符号存储价格,则可以在使用正则表达式添加之前只取数字,以便 php 进行添加,在这种情况下,您必须在输出到后端时附加 $ 符号。