为了账号安全,请及时绑定邮箱和手机立即绑定

php 二维数组 怎么获取不同值对应的时间差

php 二维数组 怎么获取不同值对应的时间差

PHP
慕桂英3389331 2018-11-17 17:27:02
$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;
    }
}


查看完整回答
反对 回复 2018-11-17
  • 1 回答
  • 0 关注
  • 633 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信