- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这是我的数组。(这个数组是例子)
Array(
[0] => Array
(
[amt] => 50.00
[transaction_date] => 2015-01-01
)
[1] => Array
(
[amt] => 0.00
[transaction_date] => 2015-02-01
)
[2] => Array
(
[amt] => 60.00
[transaction_date] => 2015-01-01
)
)
我正在尝试根据日期对数组进行排序或分组。交易日期应该是一个意味着数组中没有重复的交易条目。我希望这个数组也应该按日期排序。意味着 2015-01-01 应该首先和 2015-02-01 在 2015-01-01 之后,如果日期可用,依此类推。
我想要如下的新数组
Array(
[0] => Array
(
[amt] => 110.00
[transaction_date] => 2015-01-01
)
[1] => Array
(
[amt] => 0.00
[transaction_date] => 2015-02-01
)
)
2015-01-01 此日期在数组中出现 2 次,每次重复时应添加 2 个不同的金额。数量应该是110
我试过了
$result = array();
foreach ($output as $key => $value) {
$hash = $value['transaction_date'];
if (isset($result[$hash])) {
$result[$hash]['amt'] += $value['amt'];
$result[$hash]['transaction_date'] = $value['transaction_date'];
} else {
$result[$hash]['amt'] = $value['amt'];
$result[$hash]['transaction_date'] = $value['transaction_date'];
}
}
print_r(array_values($result));
这是我实际的json编码结果
{"2015-07-18":{"amt":50,"transaction_date":"2015-07-18"},"2015-05-28":{"amt":"450.00","transaction_date":"2015-05-28"},"2015-06-02":{"amt":"200.00","transaction_date":"2015-06-02"},"2015-06-18":{"amt":"12610.00","transaction_date":"2015-06-18"},"2015-06-23":{"amt":"0.00","transaction_date":"2015-06-23"},"2015-06-24":{"amt":"603.00","transaction_date":"2015-06-24"},"2015-07-14":{"amt":"0.00","transaction_date":"2015-07-14"},"2015-07-16":{"amt":"0.00","transaction_date":"2015-07-16"},"2015-07-17":{"amt":"0.00","transaction_date":"2015-07-17"}}
你可以在这个链接中查看这个数组 http://jsonviewer.stack.hu/
最佳答案
尝试简单地使用 usort
作为
$result = array();
foreach ($output as $key => $value) {
$hash = $value['transaction_date'];
if (isset($result[$hash])) {
$result[$hash]['amt'] += $value['amt'];
$result[$hash]['transaction_date'] = $value['transaction_date'];
} else {
$result[$hash]['amt'] = $value['amt'];
$result[$hash]['transaction_date'] = $value['transaction_date'];
}
}
uasort(array_values($result),function($a,$b){
return $a['transaction_date'] - $b['transaction_date'];
});
print_r(array_values($result));
关于php - 简单的日期明智排序数组不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31966796/
我有一个包含 1+N 个线程和 N 个 FIFO 队列的程序,例如:FIFO_queue_t* fifo_queque[N]。一个线程负责填充这 N 个 FIFO 队列。并且其他每个线程都与 1 个
我正在使用 Wise Installer Editor 编写 .msi,并且我想将所有文件复制到注册表项中指定的目录中。 我如何在 Wise 中指定这一点? 提前致谢, 埃内斯托 最佳答案 您可以尝试
我们有一个场景,其中我们尝试获取附加的磁盘虚拟机以及分配给这些磁盘的相应总空间。是否有任何命令或脚本可以获取详细信息? 我已使用命令 Get-AzureDisk 获取输出,但它没有显示列表中的所有虚拟
我有一个包含多个派生类的类,每个派生类都有自己的构造函数。 class A { public: static A *create_new_A(int child_ID);
我有一个小问题:) 我计划建立一个相当不寻常的 web 项目,大约有 1000 个页面,其中不会有经典的导航(仅适用于关于页面和联系人),并且所有页面都不会链接到一个又一个。 它的索引 > 打开随机页
我们的应用程序中有一些数据。有时它会被保存,所以我们为它做了一个实体和一个 NSManagedObject 子类。但是,通常情况下,对象将被实例化并且永远不会保存。我正在考虑使用另一个具有 NSInM
假设我有一个表如下: Class | Subject | Student | Marks ---------------------------------------- 1
刚刚在我正在编写的一些代码中偶然发现了这种情况,并且很好奇“正确”的方法是什么。举例来说,我有一大堆对象,我需要按某个属性对其进行分组,但组的顺序很重要。 例如。对象: var obj = {
如何在 Android 应用 Activity 中启用 Mutli 窗口选项? 我尝试在两个单独的 Activity 中使用 AndroidManifest Activity 属性 android:r
我发现 ear 插件覆盖了 war 插件并阻止调用 war 任务。我通过直接调用它来绕过它。 这是远程明智的还是我应该放弃并转向 eclipse 和 gradle 中的多项目设置? ear {
我们的安装程序是用 Inno Setup 编写的,我们实际上对它非常满意。然而,一些客户不断要求他们可以更轻松地通过 Active Directory 分发 MSI 安装程序。通过扩展 Inno Se
我正在尝试使用 Visual Studio 2017 (v15.4.5) 将现有的 WCF Web API(针对 .NET Framework 4.6.1)移植到 ASP.Net Core 2,但在找
我是一名优秀的程序员,十分优秀!