2013-05-03 70 views
-2

缺少元素添加到数组我的小时/分钟的阵列,添加经由功能

$array = array("09:00","09:05","09:10","09:15","09:20","09:25","09:30","09:35","09:40","09:45","09:50","09:55","10:00","10:05","10:10","10:15","10:20","10:25","10:30","10:35","10:40","10:45","10:50","10:55",15:00","15:05","15:10","15:15","15:20","15:25","15:30","15:35","15:40","15:45"," 15:50","15:55","16:00","16:05","16:10","16:15","16:20","16:25","16:30","16:35","16:40","16:45","16:50","16:55");  

如何可以添加缺少的时间?(从11:00到14点55分)的元素用5不同从一个另一个分钟。

+0

为什么“添加缺少的”时间?这会给你买什么吗?如果你只是从头开始生成完整的数组,那会不会更简单?你甚至需要一个数组的结果,还是你只是想要一个一个地处理它们? – Jon 2013-05-03 10:16:35

+0

你可以得到第一个和最后一个元素,并简单地生成新的数组:)。 – nacholibre 2013-05-03 10:16:49

+0

无论如何,如果所有的值都是按顺序排列的数字,那么为什么还要把它们全部存储在一个数组中呢?给定* N *时间,您将始终能够找到下一个** x **许多值? – Emissary 2013-05-03 10:18:11

回答

0

首先,它应该是:

$array = array("09:00",...); 

其次,你可以只生成整个阵列。如果你绝对必须这样做,那么最简单的方法是循环你已有的数组,然后将缺失的项目添加到新数组中,然后合并它们并对结果数组进行排序。

+0

这只是我的数组怎么是一个例子,我写的quickly..sorry,反正它是重要的时间。我从另一个脚本中获取了这种数组。它不完整。所以我需要找到并添加缺少的值。它应该在一个函数内完成。我来试试您的解决方案..感谢 – Mirela 2013-05-03 10:38:53

0

我认为人们会抢着回答 - 我的评论代表,但是你把它存储所有这些时间在阵列中似乎矫枉过正,但要回答这个问题......不一定是最简单的方法,但最简单的可读性是使PHP的日期功能使用:

for($i=strtotime('11:00'),$j=strtotime('15:00');$i<$j;$i+=5*60) 
    $array[] = gmdate('H:i', $i); 
$array = array_unique($array); 
asort($array); 

print_r($array); 

run code

+0

你会在性能上获得了很多,如果'的strtotime('15:00' )'将外循环。如果不是,它将被评估大约50次,它不是最轻的功能。总体表现不会有太大变化,但仍然如此。 – Nux 2013-05-03 11:44:46

+0

@Nux thx,我很快写到:P但技术上,所以我已经更新了这篇文章。鉴于上下文,但差异可以忽略不计。 – Emissary 2013-05-03 11:57:41