【发布时间】:2016-01-21 16:01:28
【问题描述】:
我正在尝试创建一个数组,将相似/相同的项目组合在一起,并创建该项目出现次数的计数/计数。
我已经设法得到一个输出数组,看起来像这样:
Code Item
WX4RCDWK3VJ7M Caesar Salad
WX4RCDWK3VJ7M Caesar Salad
YTZ8346445MFT Wolfblass Cab Sauvignon
XGZ4NDEDKTCGY Rib Eye 16 oz
A50NPRW74C5K6 Filet 8 oz
A50NPRW74C5K6 Filet 8 oz
A50NPRW74C5K6 Filet 8 oz
我希望输出看起来像这样:
Code Item Count
WX4RCDWK3VJ7M Caesar Salad 2
YTZ8346445MFT Wolfblass Cab Sauvignon 1
XGZ4NDEDKTCGY Rib Eye 16 oz 1
A50NPRW74C5K6 Filet 8 oz 3
目前我已经成功地基于一个原始的扩展多维数组 ($orders[]['lineItems']['elements'][]):
foreach ($orders as $order){
foreach ($order['lineItems']['elements'] as $item){
$product['code'] = $item['item']['code'];
$product['name'] = $item['name'];
$products[] = $product;
}
}
print_r ($products);
我尝试使用 array_count_values,但在我的终端中出现错误提示“只能计算 STRING 和 INTEGER 值!”。
我尝试将 product['code'] 循环作为我的输出数组 ($products) 的键并增加 product['count'] 项。
这似乎应该是非常基本的,但我错过了一些东西。
编辑:我循环的原始数组看起来像这样(我已经取出了最不相关的部分) - 这是一个单一的“订单”,其中有很多。
"orders" : {
"elements": [1]
0: {
"currency" : "EUR"
"lineItems": {
"elements": [2]
0: {
"item": {
"code": "ASDFXCVDGRRGTG"
}-
"name": "Caesar Salad"
"price": 400
},
1: {
"item": {
"code": "QWEWERRTERTT"
}-
"name": "Crafty Beer"
"price": 100
}
}
"createdTime": 1453386417000
}
}
EDIT2 - 将 'id' 更改为 'code' 以避免数字和非数字数组之间的混淆
【问题讨论】:
-
这来自数据库?在查询中执行。
-
不,不是,来自 REST Api
-
原始数组长什么样子?
-
你去 - 这是一个相当大的数组,但我已经尝试将它过滤到相关的部分 - 对任何小的格式错误表示歉意