PHP - 如何使用键和值对多维数组进行分组

时间:2016-05-06 20:05:02

标签: php

我试图提前提出这个问题,但没有提供足够的信息......

我从数据库中提取信息。我拉的每一行都是这样的,

{"group":"admin","center":"equipment","section":"bucket","tab":"overview"}

我需要以下信息,“中心”,“部分”和“标签”。

目前,我使用“array_push”创建一个包含此信息的数组。代码看起来像这样,

for ($y=0;$y<count($infos);$y++){
    $templist = array();
    array_push($templist, $infos[$y]['center']);
    array_push($templist, $infos[$y]['section']);
    array_push($templist, $infos[$y]['tab']);
    array_push($tempmasterlist, $templist);

并在使用json_encode()

时显示
[["center1","section1","tab1"],["center2","section1","overview"],["center1","section1","tab2"]]

我需要生成的json看起来像这样,

 {"center1":["section1",["tab1", "tab2"]],"center2":["section1",["tab3"]]}

基本上,我想要正确地对这些进行动态分组,以便可以轻松检索它们。 一个中心可以有多个部分,一个部分可以有多个选项卡。根据用户的不同,可能有多个中心,部分或标签,因此我无法对任何内容进行硬编码。

任何帮助都会非常感激,我一直在疯狂地使用for循环和if语句几个小时......

1 个答案:

答案 0 :(得分:2)

您不需要array_push。您可以使用结果行中的相应列作为$tempmasterlist中的键。

foreach ($infos as $row) {
    $tempmasterlist[$row['center']][$row['section']][] = $row['tab'];
}