首页 > 解决方案 > 如何更改/重置 PHP 数组类型?

问题描述

我有以下 PHP 代码用于识别日期的交集,这些日期落在我们有完整条件的日期上。

基于此 StackOverflow 帖子:<a href="https://stackoverflow.com/questions/19958292/php-check-multiple-dates-in-array-are-within-a-date-range">php 检查多个日期在数组中的日期范围内我有一个使用测试数组($ d2)的工作过滤器。

<?php

$d2 = array ('08/23/2019','08/24/2019','08/25/2019','08/26/2019','08/27/2019','08/28/2019','08/29/2019','08/30/2019','08/31/2019','09/01/2019');

$start = strtotime('08/27/2019');
$end =   strtotime('08/29/2019');

foreach($d2 AS $date) {
    $timestamp = strtotime($date);
    if($timestamp >= $start && $timestamp <= $end) {
        echo "The date $date falls on a day where we are sold out \n";
    } else {
        // echo "Process Reservation \n";
    }
}
?>

有效的 print_r($d2) 如下所示:

Array
(
    [0] => 08/23/2019
    [1] => 08/24/2019
    [2] => 08/25/2019
    [3] => 08/26/2019
    [4] => 08/27/2019
    [5] => 08/28/2019
    [6] => 08/29/2019
    [7] => 08/30/2019
    [8] => 08/31/2019
    [9] => 09/01/2019
)

但是我的数组包括检查现有日期,然后查找在特定日期有 x 个实例。例如,如果我们有 7 个或更多,我们有一个完整的条件(售罄)。

$sold_outUS = array_filter($datesUS, function($n) { return $n >= 7; });

如果我 print_r($sold_outUS) 这个数组,它会显示不同类型的数组结构:

Array
(
    [08/23/2019] => 7
    [08/24/2019] => 7
    [08/25/2019] => 7
    [08/26/2019] => 7
    [08/27/2019] => 7
    [08/28/2019] => 7
    [08/29/2019] => 7
    [08/30/2019] => 7
    [08/31/2019] => 7
    [09/01/2019] => 7
)

如何更改此数组的存储方式,使其与工作状态以及我需要学习的内容相匹配?

看起来好像我需要数组中每个实例的独立键和值。只是不知道如何更改或重置数组?非多维?

标签: phparrays

解决方案


用于array_keys获取关联数组的键。

$sold_outUS = array_keys(array_filter($datesUS, function($n) { return $n >= 7; }));

推荐阅读