doulu0266 2013-08-28 12:08
浏览 57
已采纳

替换多维数组中的值 - php

I need to replace all the total values with the corresponding subtraction of start and end values. Values are come from a sql result Any help how to do that? For Ex :

12.30 - 5.00 = 7.30

15.30 - 7.00 = 8.30

16.30 - 9.00 = 7.30

Existing array

array(184) {
   [1]=>
      array(3) {
         ["start"]=>
         string(4) "5.00"
         ["end"]=>
         string(4) "12.30"
         ["total"]=>
         string(4) "1.00"
      }
   [2]=>
      array(3) {
         ["start"]=>
         string(4) "7.00"
         ["end"]=>
         string(4) "15.30"
         ["total"]=>
         string(4) "1.00"
      }
   [3]=>
      array(3) {
         ["start"]=>
         string(4) "9.00"
         ["end"]=>
         string(4) "16.30"
         ["total"]=>
         string(4) "1.00"
      }
    ... // more records are there
 }

Replaced final array

 array(184) {
    [1]=>
       array(3) {
        ["start"]=>
        string(4) "5.00"
        ["end"]=>
        string(4) "12.30"
        ["total"]=>
        string(4) "7.30"
    }
    [2]=>
      array(3) {
        ["start"]=>
        string(4) "7.00"
        ["end"]=>
        string(4) "15.30"
        ["total"]=>
        string(4) "8.30"
   }
   [3]=>
     array(3) {
       ["start"]=>
       string(4) "9.00"
       ["end"]=>
       string(4) "16.30"
       ["total"]=>
       string(4) "7.30"
   }
... // more records are there
 }
  • 写回答

5条回答 默认 最新

  • doutang3760 2013-08-28 13:02
    关注

    Add this function to your code:

    function timeDiff($first, $second) {
        return str_replace(':', '.', 
            strtotime(str_replace('.', ':', $second)) - 
            strtotime(str_replace('.', ':', $first))
        );
    }
    

    Then assign your array to $array variable and use code provided in Akam's answer, just change y-x to timeDiff(x,y):

    foreach($array as &$v){
        $v['total'] = timeDiff($v['start'], $v['end']);
    }
    

    That should do the trick :)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路