根据对象数组中的值创建或重新排序数组

卡尔卡尔松尼夫:

我有一个对象数组,其中一部分看起来像这样:

[Results] => Array
    (
        [0] => stdClass Object
            (
                [Id] => 3103
                [Tag] => Atticus Ross
            )

        [1] => stdClass Object
            (
                [Id] => 3105
                [Tag] => Atticus Ross
            )

        [2] => stdClass Object
            (
                [Id] => 3106
                [Tag] => Grant Marshall
            )

        [3] => stdClass Object
            (
                [Id] => 3107
                [Tag] => Trent Reznor
            )

        [4] => stdClass Object
            (
                [Id] => 3108
                [Tag] => Atticus Ross
            )

        [5] => stdClass Object
            (
                [Id] => 3109
                [Tag] => Atticus Ross
            )

        [6] => stdClass Object
            (
                [Id] => 3110
                [Tag] => Grant Marshall
            )
        [7] => stdClass Object
            (
                [Id] => 3114
                [Tag] => Trent Reznor
            )    
    )

[Id]是唯一的。

[Tag]不是唯一的。

我需要对其进行重组,以便知道每个ID对应的ID。每个标签只能列出一次。就像是:

Array
(
    [Atticus Ross] => Array
        (
            [0] => 3103
            [1] => 3105
            [2] => 3108
            [3] => 3109
        )
    [Grant Marshall] => Array
        (
            [0] => 3106
            [1] => 3110
        )   
    [Trent Reznor] => Array
        (
            [0] => 3107
            [1] => 3114
        )        
)

它并不一定需要具有这种结构,但是希望可以更轻松地了解我在寻找什么。

我已经尝试遍历原始数组,并且能够获得唯一的标签数组,但是我不确定如何为每个标签添加/合并ID:

$all_tags = array();

foreach ($results as $result) {
    $Id = $result->Id;
    $Tag = $result->Tag;

    $all_tags[] = $Tag;
    $all_tags_unique = array_values(array_unique($all_tags));
}

我可能不在这里。感谢任何帮助!

Nigel Ren :

仅遍历结果元素并将其添加到Tag标识的元素中就足够了...

$all_tags = array();

foreach ($results as $result) {
    $all_tags[ $result->Tag ][] = $result->Id;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章