PHP-使用多数组键搜索中的值创建日期范围数组

PHP-使用多数组键搜索中的值创建日期范围数组,php,arrays,search,multidimensional-array,Php,Arrays,Search,Multidimensional Array,我已经从以前的搜索中创建了多个数组。这一点是启用酒店预订,以防酒店客满,并且任务必须在住宿期间更换房间。因此,数组$freeRooms被创建为按日期排列的空闲房间数组 $freeRooms = array( 0 => array ( '2020-07-23' => 37 ), 1 => array ( '2020-07-20' => 38, '2020-07-21' => 38,

我已经从以前的搜索中创建了多个数组。这一点是启用酒店预订,以防酒店客满,并且任务必须在住宿期间更换房间。因此,数组$freeRooms被创建为按日期排列的空闲房间数组

$freeRooms = array(
0 => array
    (
        '2020-07-23' => 37
    ),

1 => array
    (
        '2020-07-20' => 38,
        '2020-07-21' => 38,
        '2020-07-22' => 38
    ),

2 => array
    (
        '2020-07-25' => 38,
        '2020-07-26' => 38
    ),

2 => array
    (
        '2020-07-20' => 59,
        '2020-07-21' => 59
    ),

3 => array
    (
        '2020-07-20' => 86,
        '2020-07-21' => 86
    ),

4 => array
    (
        '2020-07-20' => 39,
        '2020-07-21' => 39
    ),

5 => array
    (
        '2020-07-25' => 39,
        '2020-07-26' => 39
    ),

6 => array
    (
        '2020-07-20' => 40
    ),

7 => array
    (
        '2020-07-24' => 40,
        '2020-07-25' => 40,
        '2020-07-26' => 40
    ),

8 => array
    (
        '2020-07-20' => 41,
        '2020-07-21' => 41,
        '2020-07-22' => 41,
        '2020-07-23' => 41
    ));
第二个数组是日期范围:

$dateRange = array(0 => '2020-07-20',
1 => '2020-07-21',
2 => '2020-07-22',
3 => '2020-07-23',
4 => '2020-07-24',
5 => '2020-07-25',
6 => '2020-07-26');
我需要从$dateRange为每天创建一些最终数组,从$freeRooms使用一些房间。重点是尽可能少地使用id房间,以获得如下内容:

$finalArray = array('2020-07-20' => 41,
'2020-07-21' => 41,
'2020-07-22' => 41,
'2020-07-23' => 41,
'2020-07-24' => 40,
'2020-07-25' => 40,
'2020-07-26' => 40);

这是我的实际解决方案:

  • 按免费天数计算的订单

    数组\多排序(数组\映射('count',$freeRooms),排序\描述,$freeRooms)

  • 将$dateRange键设置为与值相同的值

    $newRange=array\u combine($dateRange,$dateRange); $finalRms=array()

  • 循环并创建新数组

    foreach($ffa为$k=>$v){ foreach($nk=>nv的新范围){ 如果(array_key_存在($nk,$v)&&array_key_存在($nk,$finalRms)==false){ $finalRms[$nk]=$v[$nk]; } } }