繁体   English   中英

PHP,根据键缺失的值创建新数组

[英]Php, create new array on basis of value missing for key

我有一个多维数组:

$array = array(
    array(
        "name" => "one",
        "date" => "2016-10-10",
        "data"=> 30
    ),
    array(
        "name" => "one",
        "date" => "2016-10-11",
        "data"=> 30
    ),
    array(
        "name" => "two",
        "date" => "2016-10-10",
        "data"=> 40
    )
);

现在我想合并数组的差异,例如如果数组(名称=>一个)有两个日期(2016-10-10和2016-10-10),但数组(名称=>两个)只有一个日期(2016 -10-10),我想添加2016-10-11数组(名称=>两个)。

array(
    "name" => "two",
    "date" => "2016-10-11",
    "data"=> 0
)

我可能没有想到过更简单的方法,但是我认为解决方案似乎需要三个步骤。

  1. 按日期分组您的值

     foreach ($array as $row) { $dates[$row['date']][$row['name']] = $row['data']; } 
  2. 获取所有名称的唯一列表

     $names = array_unique(array_column($array, 'name')); 
  3. 迭代日期组并将缺少的值填充到原始数组中。

     foreach ($dates as $date => $date_names) { foreach ($names as $name) { if (!isset($date_names[$name])) { $array[] = ['name' => $name, 'date' => $date, 'data' => 0]; } } } 

(如果按名称分组并获得唯一的日期列表,此方法也应相同。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM