以各种方式统计各种数据
Counting various data in various ways
嗨,我想做的是使用 MWS api 从亚马逊获取订单历史记录,然后按天显示数据作为夏季数据,这是我目前拥有的代码及其输出的内容。
$date = new DateTime();
$dates = [];
for ($i = 0; $i < 30; $i++) {
$date->sub(new DateInterval('P1D'));
$dates[] = $date->format('Y-m-d');
}
echo "<head><link href='../../../public/css/bootstrap.css' rel='stylesheet' type='text/css'/></head>";
//echo "<div class='col-md-12'><div class='col-md-2'>Date</div><div class='col-md-2'>Sales</div><div class='col-md-2'>Amount Shipped</div><div class='col-md-2'>Order Total</div><div class='col-md-2'></div><div class='col-md-2'></div></div>";
foreach ($dates as $key => $value) {
foreach ($response->getListOrdersResult()->Orders as $order) {
if (strpos($order->PurchaseDate, $value) !== false) {
if(substr($order->PurchaseDate, 0, -10) == "$value" ) {
$array[] = $order->BuyerName;
}
echo "<div class='col-md-12'><div class='col-md-2'>$order->BuyerName</div><div class='col-md-2'>$order->OrderStatus</div><div class='col-md-2'>".$order->OrderTotal->Amount."</div><div class='col-md-2'>".$order->NumberOfItemsShipped."</div><div class='col-md-2'>".substr($order->PurchaseDate, 0, -10)."</div></div>";
}
}
}
所以此代码当前使用从 MWS api 返回的数据,然后将数据放入按销售日期分组的列中,如下所示。
name status amount date
Somebody Shipped 25.981 2015-01-13
Somebody Shipped 7.971 2015-01-13
Somebody Shipped 14.371 2015-01-13
Somebody Shipped 25.981 2015-01-13
Somebody Shipped 25.981 2015-01-13
Somebody Shipped 29.9712015-01-13
------------------------------------------------------------------2015-01-13
Somebody Shipped 25.981 2015-01-12
Somebody Shipped 35.152 2015-01-12
------------------------------------------------------------------2015-01-12
我想要它做的是计算一个日期有多少条记录,例如 13 号有 6 条,12 号有 2 条然后我想把所有的金额加起来所以这就是我希望使用相同的数据输出正确的版本
Date Sales Amount
2015-1-13 6 130.25
2015-01-12 2 60
实现此目的的任何帮助都是非常合适的,我认为我没有遗漏任何关键信息,因为所有数据都在代码片段中
只需将值存储到一个数组中。检查循环中的日期是否与前一个日期相同。如果不是,则将上一个日期设置为当前日期,然后创建一个数组键,并将当前金额添加到一个数组中,并将计数器设置为 1,如果是,则增加 coutner,并将金额添加到之前的金额.当然,$response->getListOrdersResult()->Orders
要按日期排序。
$oldDate = 0;
$amounts = array();
foreach ($response->getListOrdersResult()->Orders as $order) {
if (strpos($order->PurchaseDate, $value) !== false) {
if (substr($order->PurchaseDate, 0, -10) == "$value") {
$array[] = $order->BuyerName;
}
$date = substr($order->PurchaseDate, 0, -10);
if ($date !== $oldDate) {
$oldDate = $date;
$amounts[$date] = array(
'amount' => $order->OrderTotal->Amount,
'cnt' => 1
);
} else {
$amounts[$date]['cnt'] ++;
$amounts[$date]['amount'] += $order->OrderTotal->Amount;
}
}
}
var_dump($amounts);
嗨,我想做的是使用 MWS api 从亚马逊获取订单历史记录,然后按天显示数据作为夏季数据,这是我目前拥有的代码及其输出的内容。
$date = new DateTime();
$dates = [];
for ($i = 0; $i < 30; $i++) {
$date->sub(new DateInterval('P1D'));
$dates[] = $date->format('Y-m-d');
}
echo "<head><link href='../../../public/css/bootstrap.css' rel='stylesheet' type='text/css'/></head>";
//echo "<div class='col-md-12'><div class='col-md-2'>Date</div><div class='col-md-2'>Sales</div><div class='col-md-2'>Amount Shipped</div><div class='col-md-2'>Order Total</div><div class='col-md-2'></div><div class='col-md-2'></div></div>";
foreach ($dates as $key => $value) {
foreach ($response->getListOrdersResult()->Orders as $order) {
if (strpos($order->PurchaseDate, $value) !== false) {
if(substr($order->PurchaseDate, 0, -10) == "$value" ) {
$array[] = $order->BuyerName;
}
echo "<div class='col-md-12'><div class='col-md-2'>$order->BuyerName</div><div class='col-md-2'>$order->OrderStatus</div><div class='col-md-2'>".$order->OrderTotal->Amount."</div><div class='col-md-2'>".$order->NumberOfItemsShipped."</div><div class='col-md-2'>".substr($order->PurchaseDate, 0, -10)."</div></div>";
}
}
}
所以此代码当前使用从 MWS api 返回的数据,然后将数据放入按销售日期分组的列中,如下所示。
name status amount date
Somebody Shipped 25.981 2015-01-13
Somebody Shipped 7.971 2015-01-13
Somebody Shipped 14.371 2015-01-13
Somebody Shipped 25.981 2015-01-13
Somebody Shipped 25.981 2015-01-13
Somebody Shipped 29.9712015-01-13
------------------------------------------------------------------2015-01-13
Somebody Shipped 25.981 2015-01-12
Somebody Shipped 35.152 2015-01-12
------------------------------------------------------------------2015-01-12
我想要它做的是计算一个日期有多少条记录,例如 13 号有 6 条,12 号有 2 条然后我想把所有的金额加起来所以这就是我希望使用相同的数据输出正确的版本
Date Sales Amount
2015-1-13 6 130.25
2015-01-12 2 60
实现此目的的任何帮助都是非常合适的,我认为我没有遗漏任何关键信息,因为所有数据都在代码片段中
只需将值存储到一个数组中。检查循环中的日期是否与前一个日期相同。如果不是,则将上一个日期设置为当前日期,然后创建一个数组键,并将当前金额添加到一个数组中,并将计数器设置为 1,如果是,则增加 coutner,并将金额添加到之前的金额.当然,$response->getListOrdersResult()->Orders
要按日期排序。
$oldDate = 0;
$amounts = array();
foreach ($response->getListOrdersResult()->Orders as $order) {
if (strpos($order->PurchaseDate, $value) !== false) {
if (substr($order->PurchaseDate, 0, -10) == "$value") {
$array[] = $order->BuyerName;
}
$date = substr($order->PurchaseDate, 0, -10);
if ($date !== $oldDate) {
$oldDate = $date;
$amounts[$date] = array(
'amount' => $order->OrderTotal->Amount,
'cnt' => 1
);
} else {
$amounts[$date]['cnt'] ++;
$amounts[$date]['amount'] += $order->OrderTotal->Amount;
}
}
}
var_dump($amounts);