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

时间:2013-12-09 14:35:11

标签: php arrays json object

我遇到了一个问题: 我得到了一个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
        )
)

我在这里有点失落,一些帮助会很好。

谢谢

2 个答案:

答案 0 :(得分:1)

因此,为了向$key=>$value对象添加新的$result,以下规则适用:

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

我得到了这个吗?因为上面的内容非常直接地转换为PHP。我可以为你写出来,但我会把实际的工作留给你:)

答案 1 :(得分:0)

从我收集的内容来看,以下循环就是你想要做的。

它将创建一个以“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数组。