【发布时间】:2026-02-07 13:45:01
【问题描述】:
我有一个这样的多维数组:
$array = array(
0 => array(
'name' => 'first element',
'start' => '30/04/2015',
'end' => '30/06/2015'
),
1 => array(
'name' => 'second element',
'start' => '01/07/2015',
'end' => '30/09/2015'
),
2 => array(
'name' => 'fourth element',
'start' => '01/10/2015',
'end' => '15/12/2015'
)
);
我需要根据今天的日期选择一个数组子数组(项)。 今天的日期必须介于开始日期和结束日期键之间。
最后我想要这个:
$selected_subarray = array (
'name' => 'first element',
'start' => '30/04/2015',
'end' => '30/06/2015'
)
我用这样的方式检查两个日期之间:
function check_if_in_range($start_date, $end_date, $today_date)
{
$start_d = strtotime($start_date);
$end_d = strtotime($end_date);
$today_d = strtotime($today_date);
return (($today_d >= $start_d) && ($today_d <= $end_d));
}
我试着听从这个问题How to search by key=>value in a multidimensional array in PHP的建议
但如果我能够过滤一个 key = value,我就不能使用“check_if_in_range”函数来做同样的事情。
【问题讨论】:
-
你是如何使用
check_if_in_range的? -
正如 Glavić 在答案中指出的那样,我选择的错误是日期格式。我在 check_if_in_range 函数中将 '30/06/2015' 与 date('d/m/Y') 进行比较,但它不起作用。
标签: php arrays date array-filter