Цикл массива для создания другого массива в php - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть этот массив.Последние несколько часов я пытался перебрать и сделать еще один, который организует вопрос по соответствующим предметам.

[23] => Array
        (
            [right] => A list of station and network addresses with corresponding gateway IP address.
            [id] => 23
            [level] => Professional
            [subject] => Array
                (
                    [0] => Array
                        (
                        [tid] => 1
                    )

                [1] => Array
                    (
                        [tid] => 6
                    )

            )

        [question] => What is an IP routing table?
        [answer] => A list of host names and corresponding IP addresses.
        [correct] => 0
    )

[22] => Array
    (
        [right] => Session hijacking attack
        [id] => 22
        [level] => Professional
        [subject] => Array
            (
                [0] => Array
                    (
                        [tid] => 1
                    )

                [1] => Array
                    (
                        [tid] => 6
                    )

            )

        [question] => How would an IP spoofing attack be best classified?
        [answer] => Session hijacking attack
        [correct] => 1
    )

[21] => Array
    (
        [right] => Repeater
        [id] => 21
        [level] => Intermediate
        [subject] => Array
            (
                [0] => Array
                    (
                        [tid] => 1
                    )

                [1] => Array
                    (
                        [tid] => 6
                    )

            )

Я хочу сделать что-то вроде ниже.

array ( [tid1] => array (
                            [0] array (  [question] => something )
                            [1] array (  [question] => somethingelse )
                           )
         [tid2] => array (
                            [0] array (  [question] => something )
                            [1] array (  [question] => somethingelse )
                           )

Но яЯ не в состоянии это сделать.Каков наилучший способ сделать это?

1 Ответ

1 голос
/ 25 февраля 2012

Предполагая, что ваши данные находятся в массиве с именем $data, и поскольку каждый вопрос может иметь несколько субъектов, каждый вопрос может появляться несколько раз в окончательном массиве:

$final = array();
foreach($data as $datum){
    $subjects = $datum['subject'];
    foreach($subjects as $subject){
        $tid = 'tid' . $subject['tid'];
        $final[$tid][] = array('question' => $datum['question']);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...