2

I have Json data coming in following format:

    stdClass Object
(
    [sources] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 147
                    [name] => CatsWhoCode.com
                    [segments] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [id] => 104
                                    [name] => Default
                                    [style] => EDUCATIONAL
                                    [targetAudience] => KNOWLEDGEABLE
                                    [isPrimary] => 1
                                )

                        )

                )

            [1] => stdClass Object
                (
                    [id] => 181
                    [name] => Inspire Trends - Your Daily Dose of Design and Development Resources
                    [segments] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [id] => 146
                                    [name] => Inspire Trends
                                    [style] => TECHNICAL
                                    [targetAudience] => KNOWLEDGEABLE
                                    [isPrimary] => 1
                                )

                            [1] => stdClass Object
                                (
                                    [id] => 147
                                    [name] => Inspire Trends
                                    [style] => EDUCATIONAL
                                    [targetAudience] => KNOWLEDGEABLE
                                    [isPrimary] => 0
                                )

                        )

                )

            [2] => stdClass Object
                (
                    [id] => 182
                    [name] => Designmodo
                    [segments] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [id] => 148
                                    [name] => Design Modo
                                    [style] => INFORMAL
                                    [targetAudience] => KNOWLEDGEABLE
                                    [isPrimary] => 1
                                )

                            [1] => stdClass Object
                                (
                                    [id] => 149
                                    [name] => Design Modo
                                    [style] => INFORMATIVE
                                    [targetAudience] => GENERAL
                                    [isPrimary] => 0
                                )

                        )

                )

        )

    [status] => 10
)

and I am trying to filter it and create (multi-dimensional) array that should look like following:

Array
(
    [CatsWhoCode.com] => Array
        (
                    [104] => [PRI] Default
        )

    [Inspire Trends - Your Daily Dose of Design and Development Resources] => Array
        (
                    [146] => [PRI] Inspire Trends
                    [147] =>  Inspire Trends
        )

    [Designmodo] => Array
        (
                    [148] => [PRI] Design Modo
                    [149] =>  Design Modo

        )

)

but from my code, I am ending up getting following result:

Array
(
    [CatsWhoCode.com] => Array
        (
            [0] => Array
                (
                    [104] => [PRI] Default
                )

        )

    [Inspire Trends - Your Daily Dose of Design and Development Resources] => Array
        (
            [0] => Array
                (
                    [146] => [PRI] Inspire Trends
                )

            [1] => Array
                (
                    [147] =>  Inspire Trends
                )

        )

    [Designmodo] => Array
        (
            [0] => Array
                (
                    [148] => [PRI] Design Modo
                )

            [1] => Array
                (
                    [149] =>  Design Modo
                )

        )

)

Here is my code, I cannot figure out how to fix this.

function ar_audienceList($AR){
        $audienceList = $AR->getAudienceList();

            foreach ($audienceList->sources AS $key => $source){
            foreach($source->segments AS $v){
                                            if ($v->isPrimary == 1)$pri = "[PRI]";                
                    $options[$source->name][] = array($v->id => $pri." ".$v->name,);
                    $pri = ''; // reset primary
                }
            }

    return $options;


}

Thanks

1
  • 1
    This is sort of what I really had in mind (though it's still not a very good title because it doesn't describe your problem). Commented Jan 13, 2014 at 17:53

1 Answer 1

3

Rather than indexing each element in $options[$source->name] to the next available index ([]), you want to index it to the id of the $source->segments ([$v->id]).

function ar_audienceList($AR)
{
    $audienceList = $AR->getAudienceList();
    foreach ($audienceList->sources as $key => $source)
    {
        foreach($source->segments AS $v)
        {
            if ($v->isPrimary == 1)
            {
                $pri = "[PRI]";
            }        
            $options[$source->name][$v->id] = $pri." ".$v->name; // Change is here
            $pri = ''; // reset primary
        }
    }
    return $options;
}
Sign up to request clarification or add additional context in comments.

1 Comment

Thank you so much this worked. I tried this before but it did not really work. '$options[$source->name][$v->id] = array($pri." ".$v->name); Thank you. Thanks or the explanation too.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.