PHP处理多维降一维处理问题

首先有一个多维数组 如下

clipboard.png

循环遍历后,
personal只要有1个值为1的 最终键personal结果为1
all只要有一个值为1的,最终的键all和键personal均为1
group里面的数组进行合并。

期望结果为

clipboard.png

阅读 1.6k
2 个回答

创建一个新数组,

[
    'personal'=>0,
    'all'   =>0
    'group' =>[]
]

循环数组时候判断 然后修改对应键值
,再把group 追加 试试

可以这样实现

$group = [];
$personal = $all = 0;
foreach ($arr as $item) {
    $group[] = array_merge($item['group']);
    // all只要有一个值为1的,最终的键all和键personal均为1
    if ($item['all'] == 1) {
        $personal = 1;
        $all = 1;
    }
    // personal只要有1个值为1的 最终键personal结果为1
    $item['personal'] == 1 && $personal = 1;
}

$new = [
    'personal' => $personal,
    'all'      => $all,
    'group'    => $group,
];
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题