重新组织php数组以删除双条目并合并其他条目


Reorganize php array to erase double entries and merge the others

我面临一个问题:我得到了一个json条目,其组织方式如下:

Array
(
    [0] => stdClass Object
        (
            [libelle] => Emploi
            [sousLibelle] => Réhabilitation professionnelle
        )
    [1] => stdClass Object
        (
            [libelle] => Emploi
            [sousLibelle] => Formations et aides à l'emploi
        )
    [2] => stdClass Object
        (
            [libelle] => Emploi
            [sousLibelle] => Emploi
        )
}

我需要做的是:

Array
(
    [0] => stdClass Object
        (
            [libelle] => Emploi
            [sousLibelle][0] => Réhabilitation professionnelle
            [sousLibelle][1] => Formations et aides à l'emploi
            [sousLibelle][2] => Emploi
        )
)

我在这里有点迷路了,如果能帮忙就好了。

感谢

因此,要将新的$key=>$value添加到$result对象,请应用以下规则:

  • 如果$result[$key]还不存在,请创建它并将其设置为$value
  • 如果$result[$key]存在并且是一个数组,则检查$value是否在其中。如果不在,则添加它($result[$key][] = $value
  • 如果$result[$key]存在但不是数组,请检查它是否等于$value。如果没有,请使用原始$result[$key]和新值$value创建一个新数组,并将其赋值

我说得对吗?因为上面的内容可以直接翻译成PHP。我可以帮你写出来,但我会把实际工作留给你:)

根据我的收集,下面的循环是您想要做的。

它将创建一个以"libelle"值为键的新数组,然后删除重复的数组。

$new_arr = array();
foreach($array as $val) {
    $new_arr[$val['libelle']][] = $val['sousLibelle'];
}
$new_arr = array_unique($new_arr);

编辑:只是附带说明,json_decode用于将数组从JSON数组转换为PHP数组,json_encode用于在JSON数组中生成结果。