在php

时间:2015-07-25 05:12:50

标签: php mysql arrays

我是php新手。我想将两个数组数据合并到一个表中。我的第一个数组如下:

http://i.imgur.com/XmVaUPH.png

我的第二个数组如下:

http://i.imgur.com/jSOdlMD.png

我的输出将是:

姓名日期开始时间结束时间

Billal 1-14-15 11:29 AM 8:30 Pm

Emrul 1-14-15 2:21 PM 8:34 PM

利蒙1-14-15 11:26 AM

Mamun 1-14-15 11:47 AM 8:32 pm

Masum 1-14-15 12:12 PM 8:33 pm

Shahed 1-14-15 11:30 Am

Emrul 1-15-15 11:29 AM 8:30 Pm

利蒙1-15-15 11:47 AM 8:32 pm

Masum 1-15-15 12:12 PM 8:33 pm

这里的开始时间是上午10点到下午2点,休息时间是结束时间。当开始/结束时间两个数据发现快速数据将被计算

3 个答案:

答案 0 :(得分:3)

这里看起来你需要的是组合你给出的两个数组,并根据所花费的时间对结果进行排序。

以下是一些解决问题的最佳做法。

  • 如果您需要计算日期/时间,请不要使用字符串,请使用时间戳,因为它只是一个可以轻松操作的大数字(在您的情况下,您只需要减去开始日期/时间)从结束日期/时间获得所花费的总时间)使用简单的数学。

  • 如果将数据存储在SQL数据库中,则不要检索它们并计算PHP所用的时间,而是在检索数据之前使用SQL计算持续时间。它将大大减少应用程序开销。您还可以使用SQL排序对结果集进行排序。

请不要在以后附上xdebug输出的屏幕截图,而是粘贴到编辑器上。

答案 1 :(得分:2)

$array1a = array_chunk($array1, 3);
$array2a = array_chunk($array2, 3);

 $table =array();
foreach($array1a as $v1){
   $tmp = array(
   'name'=>$v1[0],
    'date' => $v1[1],
     'time1' => $v1[2]
    );

  foreach($array2a as $v2){
      if($v2[1] == $v1[1] && $v2[0] == $v1[0]){
        $tmp['time2']=$v2[2];
       }
   }
  $table[] =   $tmp;
}

希望有所帮助

答案 2 :(得分:0)

array_merge()是合并两个数组的有用函数。这是一个简单的例子。

{{1}}