我想按键剪切数组,然后在这些键之间返回数组。函数调用可能如下所示:
$array = cutArray('2020-1-25', '2020-1-30', $array);
$array = [
'2020-1-22' => 0,
'2020-1-23' => 0,
'2020-1-24' => 3,
'2020-1-25' => 0,
'2020-1-26' => 0,
'2020-1-27' => 4,
'2020-1-28' => 0,
'2020-1-29' => 0,
'2020-1-30' => 0,
'2020-1-31' => 2,
'2020-2-1' => 2,
'2020-2-2' => 2
];
我做了几次尝试,但总会产生很大的开销,所以我放弃了。简单的问题,很难解决?
以(fiddle)开头的初始代码:
function cutArray($f, $t, $array) {
$fromPos = array_search($f, array_keys($array));
$toPos = array_search($t, array_keys($array));
return array_slice($array, $fromPos, $toPos - $fromPos + 1);
}