$arr=['0' =>['a1' => 'true','time' => 1537861731],'1' =>['a1' => 'false','time' => 1541035671],'2' =>['a1' => 'true','time' => 1541036000],'3' =>['a1' => 'true','time' => 1541036010]'4' =>['a1' => 'false','time' => 1541036020]
];
true:接通;
false:未接通;
true到false的时间是接通时间; false到true的是未接通时间;
结果:想获取所有的接通时间。
就是用false对应的时间戳减去前面的为true的时间戳。
这个试例中的就只能 用1减去0的时间,4减去2的时间。
1 回答
杨魅力
TA贡献1811条经验 获得超6个赞
从你这段数组上感觉你对于通话时长,这段业务处理的很奇怪(指的是数组的形成方式)。
通过下面的代码应该可以得到你想要的结果:
$true_key = null; $times = [];foreach ($arr as $key => $value) { if ($value['a1'] == 'true') { // 记录true第一次出现时的下标 if ($true_key === null) { $true_key = $key; } continue; } /** * 记录 */ if (($value['a1'] == 'false') && ($true_key !== null)) { $times[] = $value['time'] - $arr[$true_key]['time']; $true_key = null; } }
- 1 回答
- 0 关注
- 633 浏览
添加回答
举报
0/150
提交
取消