首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php,根据键丢失的值创建新数组。

Php,根据键丢失的值创建新数组。
EN

Stack Overflow用户
提问于 2017-12-01 16:34:42
回答 1查看 54关注 0票数 0

我有一个多维数组:

代码语言:javascript
复制
$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
    )
);

现在我想合并数组的差异,比如一个数组(名称=> 1)有两个日期(2016-10-10和2016-10-10),但是数组(名称=> 2)只有一个日期(2016-10-10),我想将2016-10-11与数组(名称=> 2)相加。

代码语言:javascript
复制
array(
    "name" => "two",
    "date" => "2016-10-11",
    "data"=> 0
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-01 17:01:20

也许有一种更简单的方法我还没有想到,但我认为解决方案似乎需要三个步骤。

  1. 按日期分组您的值 foreach ($array as $row) {$dates[$row‘’date‘][$row’‘name’]=$row‘’data‘;}
  2. 获取所有名称的唯一列表 $names = array_unique(array_column($array,'name'));
  3. 迭代日期组并将缺失的值填充到原始数组中。 {$dates as $date => $date_names) { foreach ($names as $name) { if (!isset($date_names$name)) { $array[] = 'name‘=> $name,'date’=> $date,data‘=> 0;}}

(如果您按名称分组并获得唯一的日期列表,这也应该是一样的。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47597628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档