在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]如果有多个日期怎么办?是的,有多个日期,但我希望它像这样,这样我就可以通过谷歌图表绘制数据