猿问

删除当前年份之前的数组项

我有一个包含以下格式的日期的数组。我想在 2019 年之前删除带有密钥的项目。


这是我迄今为止尝试过的代码。但我没有得到任何结果。


任何人都可以帮助我。


$array = [

  "date_2018_08" => 81,

  "date_2018_09" => 70,

  "date_2018_10" => 70,

  "date_2018_11" => 95,

  "date_2018_12" => 75,

  "date_2019_01" => 91,

  "date_2019_02" => 78,

  "date_2019_03" => 95,

  "date_2019_04" => 68

];

$year = 2019;

$month = 4;



$array = array_filter($array,function($date){

    $t1 = strtotime(str_replace(["date_", "_"], ["", "-"], $date));

    return $t1 >= strtotime(str_replace(["date_", "_"], ["", "-"], '2019-01-01'));

});


湖上湖
浏览 146回答 2
2回答

守候你守候我

您可以将array_filter( doc ) 与标志“ARRAY_FILTER_USE_KEY”一起使用:$year = 2019;$filtered = array_filter(    $array,    function ($key) use ($year) {        $parts = explode("_", $key);        return $parts[1] >= $year;    },    ARRAY_FILTER_USE_KEY);现场示例:3v4l编辑:使用简单foreach:foreach($array as $k => $v) {    $parts = explode("_", $k);    if ($parts[1] >= $year)        $filtered[$k] = $v;}
随时随地看视频慕课网APP
我要回答