根据另一个数组重写数组

时间:2016-06-14 16:39:15

标签: php arrays loops

所以这很奇怪。我有两个数组,一个数组是一个事件列表。如果没有事件,它只有零。另一个数组计算等于0的项目数。基本上我无法弄清楚如何根据第二个数组调整第一个数组。

我想做的是创建一个数组,在第一个空后删除一些空,并重写值以说出不同的东西......有点像这样。我想重写所以它抓取给出一个通用的标题和事件时间,并根据0的第一个点和最后的零值开始。

基本上我必须这样做的原因是我们正在尝试使用客户端api来制定计划。问题是他们使用的api不适合他们想要显示的开放时间段。所以我想要做的就是循环打开它们的小时数,根据事件时间添加事件,然后在事件之间创建空白事件。问题是我在创建空白事件时遇到问题。

谢谢!我不是最好的php开发人员,我实际上有一个同事帮助我这么远,我只是无法弄清楚如何/用于实现这一目的的功能。

理想阵列

IdealArray
(
[0600] => Array
   (
        [e_name] => No events
        [e_start] => 6000
        [e_end] => 1000
    )
[1000] => Array
    (
        [e_name] =>  Event One
        [e_start] => 1000
        [e_end] => 1100
    )
[1100] => Array
   (
        [e_name] => No events
        [e_start] => 1000
        [e_end] => 1630
    )
[1630] => Array
    (
        [e_name] => Event Number 2
        [e_start] => 1630
        [e_end] => 0930
    )
[0930] => Array
   (
        [e_name] => No events
        [e_start] => 0930
        [e_end] => 1100
    )
) 

当前阵列

First Array
(
[0600] => 0
[0630] => 0
[0700] => 0
[0730] => 0
[0800] => 0
[0830] => 0
[0900] => 0
[0930] => 0
[1000] => Array
    (
        [e_name] =>  Event One
        [e_start] => 1000
        [e_end] => 1100
    )

[1100] => 0
[1130] => 0
[1200] => 0
[1230] => 0
[1300] => 0
[1330] => 0
[1400] => 0
[1430] => 0
[1500] => 0
[1530] => 0
[1600] => 0
[1630] => Array
    (
        [e_name] => Event Number 2
        [e_start] => 1630
        [e_end] => 1930
    )

[1930] => 0
[2000] => 0
[2030] => 0
[2100] => 0
[2130] => 0
[2200] => 0
[2230] => 0
) 

Second Array
 (
[0] => 8
[1] => 11
[2] => 7
)

1 个答案:

答案 0 :(得分:1)

给出问题中提供的源数组(下面名为[1, 2, 3, 4, 5]),并假设它始终按时间顺序排列:

[[1,2], [2,3], [3,4], [4,5]]

如果无法保证订单,则只需从密钥排序开始:reduce

PHP Sandbox example