首页 > 解决方案 > 通过键值从另一个数组生成数组

问题描述

嗨,我有一个包含日期和查看次数的数组,如果有的话,我想从最近 7 天的查看次数中获取

$view = array("31.01.2020"=>2,"02.02.2020"=>2,"05.02.2020"=>2,"06.02.2020"=>2);

如果今天是 2020 年 2 月 12 日,我想从这个数组中获取最后 7 天和一个月的数据,我将拥有这个数组一周

$week_array = array(
"05.02.2020"=>2,
"06.02.2020"=>2,
"07.02.2020"=>'',
"08.02.2020"=>'',
"09.02.2020"=>'',
"10.02.2020"=>'',
"11.02.2020"=>'',
"12.02.2020"=>''
);

如果我们需要得到月份,这个数组将是

$month_array = array(
"01.02.2020"=>'',
"02.02.2020"=>2,
"03.02.2020"=>'',
"04.02.2020"=>'',
"05.02.2020"=>2,
"06.02.2020"=>2,
...
"29.02.2020"=>'');

标签: phparrays

解决方案


您可以签array_key_exists$view您的月份或周数组。

在这里,我分享过去 7 天的价值。

<?php
$view = array("31.01.2020"=>2,"12.03.2020"=>2,"09.03.2020"=>2,"07.03.2020"=>2);

$week_array = array();

for($i=7;$i>0;$i--){
$week_array[date('d.m.Y', strtotime('-'.$i.' days'))] = "";

}
foreach($week_array as $week_key=>$week_value){

    if(array_key_exists($week_key,$view)){
        $week_array[$week_key] =$view[$week_key];
    }
}
print_r($week_array); exit;
?>

输出

Array
(
    [07.03.2020] => 2
    [08.03.2020] => 
    [09.03.2020] => 2
    [10.03.2020] => 
    [11.03.2020] => 
    [12.03.2020] => 2
    [13.03.2020] => 
)

您可以对上个月或任何您想要的记录执行相同的操作。

希望这对您有所帮助。


推荐阅读