Php 谷歌图表中过去30天的总daylie销售额

Php 谷歌图表中过去30天的总daylie销售额,php,mysql,arrays,Php,Mysql,Arrays,我有一张销售部的桌子。从这个表中,我得到了过去30天的所有结果,对同一日期的价格求和,得到这个数组 SQL: 我举了个例子: 数组['date']-数组['daylieprice'] “2017-03-29”-“1” “2017-04-02”-“5” “2017-04-04”-“3” 谷歌图表是这样的: ['<? echo date('d', strtotime("-2 day")) ?>', VALUE] ['<? echo date('d', strtotime("-1

我有一张销售部的桌子。从这个表中,我得到了过去30天的所有结果,对同一日期的价格求和,得到这个数组

SQL:


我举了个例子:
数组['date']-数组['daylieprice']
“2017-03-29”-“1”
“2017-04-02”-“5”
“2017-04-04”-“3”


谷歌图表是这样的:

['<? echo date('d', strtotime("-2 day")) ?>', VALUE]
['<? echo date('d', strtotime("-1 day")) ?>', VALUE]
['<? echo date('d') ?> ', VALUE]
是否意味着使用date('d')或date('d',strotime('1天')轻松获取数组值,而不需要对每个值进行循环


还是我每天都要发出一个sql请求?

我想到了这个。我用它来对输入和输出格式提供更多的控制和灵活性。这会在输入数组中循环,并从第一个条目中减去2天,从第二个条目中减去1天,并保持第三个条目不变:

<?php
$input = [
  [
    'date' => '2017-03-29',
    'daylieprice' => 1,
  ],
  [
    'date' => '2017-04-02',
    'daylieprice' => 5,
  ],
  [
    'date' => '2017-04-04',
    'daylieprice' => 3,
  ],
];

$output = [];
$number_of_dates = count($input) - 1;
foreach ($input as $v) {
  $date = DateTime::createFromFormat('Y-m-d', $v['date'])
    ->modify(sprintf('-%d days', $number_of_dates))
    ->format('Y-m-d');

  $number_of_dates--;    
  $output[] = "'" . $date . "', " . $v['daylieprice'];
}
希望这对您有所帮助,您可以准确地了解如何实施它来解决您的问题

编辑:刚刚看到了回声日期('d'),所以您可能只想要一个月的哪一天,这很简单,您可以将循环中的
->格式('Y-m-d');
更改为
->格式('d');


演示:

使用日期数据类型存储日期。然后查看@草莓(不知道我是否理解得很好)查询工作正常。现在我只需要根据上面的最后一个问题输出数组的值。如果您认为问题与(我的)无关sql,我建议从问题中删除sql和标记。感谢您的工作,看起来令人印象深刻,但这并不是我真正需要的。我搜索了一个函数,可以调用日期,例如('d')或('d-1'),我得到的数组值正好是该日期。我希望这会更容易。
date('d', strtotime("-2 day") , ARRAY ['daylieprice']);
date('d', strtotime("-1 day") , ARRAY ['daylieprice']);
date('d', ARRAY ['daylieprice']);
<?php
$input = [
  [
    'date' => '2017-03-29',
    'daylieprice' => 1,
  ],
  [
    'date' => '2017-04-02',
    'daylieprice' => 5,
  ],
  [
    'date' => '2017-04-04',
    'daylieprice' => 3,
  ],
];

$output = [];
$number_of_dates = count($input) - 1;
foreach ($input as $v) {
  $date = DateTime::createFromFormat('Y-m-d', $v['date'])
    ->modify(sprintf('-%d days', $number_of_dates))
    ->format('Y-m-d');

  $number_of_dates--;    
  $output[] = "'" . $date . "', " . $v['daylieprice'];
}
Array
(
    [0] => '2017-03-27', 1
    [1] => '2017-04-01', 5
    [2] => '2017-04-04', 3
)