Php 如何签入数组多维数组并在不存在时添加

Php 如何签入数组多维数组并在不存在时添加,php,arrays,multidimensional-array,yii2,Php,Arrays,Multidimensional Array,Yii2,假设我有这样的数组,我从数据库中得到: ( [0] => Array ( [hour] => 03 [percentage] => 20 ) [1] => Array ( [hour] => 04 [percentage] => 40 ) [2] => Array

假设我有这样的数组,我从数据库中得到:

 (
    [0] => Array
        (
            [hour] => 03
            [percentage] => 20
        )

    [1] => Array
        (
            [hour] => 04
            [percentage] => 40
        )

    [2] => Array
        (
            [hour] => 05
            [percentage] => 10
        )

    [3] => Array
        (
            [hour] => 07
            [percentage] => 12
        )

    [4] => Array
        (
            [hour] => 10
            [percentage] => 15
        )

    )
但我需要做的是,如果数组中不存在小时,即1,2,6,8,9,11,12;我需要用百分比值0在数组中推送小时 即


一些人能给出一些如何处理这个问题的提示吗。我需要每天每小时检查一次。

必需:提供所有12小时的条目

代码:
$source=Array(
数组('hour'=>04,'percentage'=>40),
数组('hour'=>05,'percentage'=>10),
数组('hour'=>07,'percentage'=>10),
数组('hour'=>10,'percentage'=>15),
);
$allHours=array();//按正确顺序添加所有空条目
//注意:索引从一开始,而不是从零开始!这更容易
对于($hour=1;$hour$hour,'percentage'=>0);
}
//替换现有的
foreach($source作为$entry){
$hour=$entry['hour'];
$allHours[$hour]=$entry;
}
打印(所有小时);

让$hour和$percent为新值

If (!array_search($hour,         array_column($myarray, 'hour'))) {
  $myarray[] = array ('hour' => $hour, 'percentage' => $percent);
}

我贴出我的答案也许对你有帮助

for($i=1;$i<=12;$i++)
                {
                    if(!in_array( $i, array_column($data,'hour'))){
                       array_push($data,array('hour'=>$i,'percentage' =>     $percentage));
                    //$datas[] =array('hour'=>$hour,'percentage' =>         $percentage);
                    }

                }
for($i=1;$i$i,'percentage'=>percentage));
//$datas[]=array('hour'=>$hour,'percentage'=>$percentage);
}
}
If (!array_search($hour,         array_column($myarray, 'hour'))) {
  $myarray[] = array ('hour' => $hour, 'percentage' => $percent);
}
for($i=1;$i<=12;$i++)
                {
                    if(!in_array( $i, array_column($data,'hour'))){
                       array_push($data,array('hour'=>$i,'percentage' =>     $percentage));
                    //$datas[] =array('hour'=>$hour,'percentage' =>         $percentage);
                    }

                }