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

$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的时间。


慕桂英3389331
浏览 639回答 1
1回答

杨魅力

从你这段数组上感觉你对于通话时长,这段业务处理的很奇怪(指的是数组的形成方式)。通过下面的代码应该可以得到你想要的结果:$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;     } }
打开App,查看更多内容
随时随地看视频慕课网APP