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


PHP - How to group multi-dimensional array with keys and values

我早些时候试图问这个问题,但没有提供足够的信息。。。

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

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

我需要以下信息,"中心"、"部分"answers"选项卡"。

目前,我使用"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语句疯狂了几个小时。。。

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

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