在php中,如何在一行中添加一天的销售额,在一列中添加相同的日期?

在php中,如何在一行中添加一天的销售额,在一列中添加相同的日期?,php,arrays,Php,Arrays,我有一个数组结果,如下所示。它显示每一天的每一笔付款,但我想在一行中添加一天中的所有付款,在一列中添加日期。我如何才能做到这一点?谢谢 数组([cols]=>2017-09-10[rows]=>1311.45)[1]=>Array([cols]=>2017-09-10[rows]=>1311.45)[2]=>Array([cols]=>2017-09-10[rows]=>175000.00) 我的代码是这样的 foreach($Todaysales as $d) { $data

我有一个数组结果,如下所示。它显示每一天的每一笔付款,但我想在一行中添加一天中的所有付款,在一列中添加日期。我如何才能做到这一点?谢谢

数组
([cols]=>2017-09-10[rows]=>1311.45)[1]=>Array([cols]=>2017-09-10[rows]=>1311.45)[2]=>Array([cols]=>2017-09-10[rows]=>175000.00)

我的代码是这样的

 foreach($Todaysales as $d)

 {

     $data[] = ['cols' => date("Y-m-d", strtotime($d['sale_time'])),'rows' => $d['payment_amount']];

 }
我期望的输出是

[[cols]=> 2017-09-10 [rows]=> sum(2017-09-10's sales)]
编辑代码 在json编码后将其转换为此格式

[{"cols":"2017-09-02 ","rows":"1186.55"},{"cols":"2017-09-03","rows":"1311.45"}

要修改以前的给定数组,可以执行以下操作:

$Todaysales = [
     ['cols' => '2017-09-10', 'rows' => 1311.45],
     ['cols' => '2017-09-10', 'rows' => 1311.45],
     ['cols' => '2017-09-10', 'rows' => 175000.00]
];

foreach($Todaysales as $d)
 {
     $data[$d['cols']][] = $d['rows'];
 }

print_r($data);
将返回:

Array
(
    [2017-09-10] => Array
        (
            [0] => 1311.45
            [1] => 1311.45
            [2] => 175000
        )

)
但是,您似乎也自己生成了第一个数组,如果是这样,您应该给我们生成$Todaysales的代码,如果要在源位置更改它的话

[编辑]问题编辑后

$Todaysales = [
     ['cols' => '2017-09-10', 'rows' => 1311.45],
     ['cols' => '2017-09-10', 'rows' => 1311.45],
     ['cols' => '2017-09-10', 'rows' => 175000.00]
];

$today_sales = ['cols' => date('Y-m-d'), 'rows' => 0];

foreach($Todaysales as $d)
 {
    $today_sales['rows'] += $d['rows'];
 }
print_r($today_sales);
返回

Array
(
    [cols] => 2017-09-10
    [rows] => 177622.9
)

要修改以前的给定数组,可以执行以下操作:

$Todaysales = [
     ['cols' => '2017-09-10', 'rows' => 1311.45],
     ['cols' => '2017-09-10', 'rows' => 1311.45],
     ['cols' => '2017-09-10', 'rows' => 175000.00]
];

foreach($Todaysales as $d)
 {
     $data[$d['cols']][] = $d['rows'];
 }

print_r($data);
将返回:

Array
(
    [2017-09-10] => Array
        (
            [0] => 1311.45
            [1] => 1311.45
            [2] => 175000
        )

)
但是,您似乎也自己生成了第一个数组,如果是这样,您应该给我们生成$Todaysales的代码,如果要在源位置更改它的话

[编辑]问题编辑后

$Todaysales = [
     ['cols' => '2017-09-10', 'rows' => 1311.45],
     ['cols' => '2017-09-10', 'rows' => 1311.45],
     ['cols' => '2017-09-10', 'rows' => 175000.00]
];

$today_sales = ['cols' => date('Y-m-d'), 'rows' => 0];

foreach($Todaysales as $d)
 {
    $today_sales['rows'] += $d['rows'];
 }
print_r($today_sales);
返回

Array
(
    [cols] => 2017-09-10
    [rows] => 177622.9
)

尝试下面的代码,您将获得日期作为键,销售金额之和作为值

foreach($Todaysales as $d)

 {

     if(isset($data[$d['sale_time']]))
         $data[$d['sale_time']] += $d['payment_amount'];
     else
         $data[$d['sale_time']] = $d['payment_amount'];

 }
 print_r($data);

编辑 如果您想要与指定相同的输出。你可以试试下面的

$data = array();
foreach($Todaysales as $d)
{
     $match_key =false;
     $match_key = array_search($d['sale_time'],array_column($data, "cols"));

     if($match_key > 0 || $match_key === 0)
        $data[$match_key]["rows"] = $data[$match_key]["rows"] + $d['payment_amount'];
     else
         $data[] = array("cols"=>$d['sale_time'],"rows"=>$d['payment_amount']);

}
print_r($data);

编辑根据您的评论,您需要谷歌图表,请尝试以下答案:

foreach($Todaysales as $d)

 {

     if(isset($data[$d['sale_time']]))
         $data[$d['sale_time']] += $d['payment_amount'];
     else
         $data[$d['sale_time']] = $d['payment_amount'];

 }

 $new_data["cols"] ="'".implode("','",array_keys($data))."'";
 $new_data["rows"] =implode(",",array_values($data));
 print_r($new_data);

尝试下面的代码,您将获得日期作为键,销售金额之和作为值

foreach($Todaysales as $d)

 {

     if(isset($data[$d['sale_time']]))
         $data[$d['sale_time']] += $d['payment_amount'];
     else
         $data[$d['sale_time']] = $d['payment_amount'];

 }
 print_r($data);

编辑 如果您想要与指定相同的输出。你可以试试下面的

$data = array();
foreach($Todaysales as $d)
{
     $match_key =false;
     $match_key = array_search($d['sale_time'],array_column($data, "cols"));

     if($match_key > 0 || $match_key === 0)
        $data[$match_key]["rows"] = $data[$match_key]["rows"] + $d['payment_amount'];
     else
         $data[] = array("cols"=>$d['sale_time'],"rows"=>$d['payment_amount']);

}
print_r($data);

编辑根据您的评论,您需要谷歌图表,请尝试以下答案:

foreach($Todaysales as $d)

 {

     if(isset($data[$d['sale_time']]))
         $data[$d['sale_time']] += $d['payment_amount'];
     else
         $data[$d['sale_time']] = $d['payment_amount'];

 }

 $new_data["cols"] ="'".implode("','",array_keys($data))."'";
 $new_data["rows"] =implode(",",array_values($data));
 print_r($new_data);

$arr=[
数组('cols'=>'2017-09-10','rows'=>1311.45),
数组('cols'=>'2017-09-10','rows'=>1311.45),
数组('cols'=>'2017-09-10','rows'=>175000.00)
];
$r['cols']=$arr[0]['cols'];
$r['rows']=0;
对于($i=0;$i
$arr)=[
数组('cols'=>'2017-09-10','rows'=>1311.45),
数组('cols'=>'2017-09-10','rows'=>1311.45),
数组('cols'=>'2017-09-10','rows'=>175000.00)
];
$r['cols']=$arr[0]['cols'];
$r['rows']=0;

对于($i=0;$i显示您的期望输出显示您的期望输出如果您想要相同的输出,如
rows
cols
Array([0]=>Array()…我不想要这些…..我想要像[[cols]=>date,[row]=>amount]如果有多个日期该怎么办?是的,有多个日期,但我希望它是这样的,这样我就可以通过谷歌图表绘制数据。如果你想要相同的输出,比如
rows
cols
数组([0]=>Array()…我不想要这些…我想要像[[cols]=>date,[row]=>amount]如果有多个日期怎么办?是的,有多个日期,但我希望它像这样,这样我就可以通过谷歌图表绘制数据