在与PHP的会话中将两个数组合并在一起

时间:2012-06-08 18:13:48

标签: php mysql arrays session multidimensional-array

问题:

我有两个数组,其中一个产生一个类别,第二个产生该类别的项目。我希望这些项目都在每个类别中,但我无法使其发挥作用。

PHP代码:

foreach ($current['Children'] as $key => $value)
{
    $query = "SELECT * FROM betyg_items WHERE CID = '{$key}' AND Status = '1' ORDER BY CID ASC";
    $result = mysql_query($query) or die ('Database Error (' . mysql_errno() . ') ' . mysql_error());

    $_SESSION['keys'][$key] = $value;

    while ($row = mysql_fetch_assoc($result))
    {
        $_SESSION['items'][$row['IID']] = array(
                                        'ID' => $row['IID'],
                                        'CID' => $row['CID'],
                                        'Description' => $row['Description']
                                    );
    }
}

$ _ SESSION ['keys']将包含:

Array
(
    [2] => Integration av källorna
    [3] => Belysning av egna resultat
    [4] => Referenser
)

$ _ SESSION ['items']将包含:

Array
(
    [1] => Array
        (
            [ID] => 1
            [CID] => 2
            [Description] => Källorna refereras separat
        )

    [2] => Array
        (
            [ID] => 2
            [CID] => 2
            [Description] => Vissa försök till sammanbindning
        )

    [3] => Array
        (
            [ID] => 6
            [CID] => 3
            [Description] => Inga jämförelser mellan egna och andras resultat
        )

    [4] => Array
        (
            [ID] => 7
            [CID] => 3
            [Description] => Kort redovisning av likheter och skillnader mellan egna och andras resultat
        )

    [5] => Array
        (
            [ID] => 11
            [CID] => 4
            [Description] => Många formella felaktigheter i referens- och litteraturförteckning; ej primärkällor
        )

    [6] => Array
        (
            [ID] => 12
            [CID] => 4
            [Description] => Vissa formella fel, vissa källor av mindre kvalitet
        )
)

问题:

如何通过使用CID值将每个项目放入它对应的数组索引中?

情境:

例如,包含数字2的所有CID都应该进入“[2] => Integrationavkällorna”,依此类推。

期望的输出:

Array
(
    [2] => Integration av källorna

            [1] => Array
                (
                    [ID] => 1
                    [CID] => 2
                    [Description] => Källorna refereras separat
                )

            [2] => Array
                (
                    [ID] => 2
                    [CID] => 2
                    [Description] => Vissa försök till sammanbindning
                )

    [3] => Belysning av egna resultat

            [3] => Array
                (
                    [ID] => 6
                    [CID] => 3
                    [Description] => Inga jämförelser mellan egna och andras resultat
                )

            [4] => Array
                (
                    [ID] => 7
                    [CID] => 3
                    [Description] => Kort redovisning av likheter och skillnader mellan egna och andras resultat
                )

    [4] => Referenser

            [5] => Array
                (
                    [ID] => 11
                    [CID] => 4
                    [Description] => Många formella felaktigheter i referens- och litteraturförteckning; ej primärkällor
                )

            [6] => Array
                (
                    [ID] => 12
                    [CID] => 4
                    [Description] => Vissa formella fel, vissa källor av mindre kvalitet
                )
)

1 个答案:

答案 0 :(得分:1)

$final_arr = array();
$i = 0;

foreach ($current['Children'] as $key => $value)
{
    $query = "SELECT * FROM betyg_items WHERE CID = '{$key}' AND Status = '1' ORDER BY CID ASC";
    $result = mysql_query($query) or die ('Database Error (' . mysql_errno() . ') ' . mysql_error());

    $final_arr[$i]['key'] = $value;

    while ($row = mysql_fetch_assoc($result))
    {
         $final_arr[$i]['items'][] = array(
                            'ID' => $row['IID'],
                            'CID' => $row['CID'],
                            'Description' => $row['Description']
                          );
    }
   $i++;
}

最终产量将是: 的 $ final_arr

Array
(
    [0] => 
            ['key']=> Integration av källorna
            ['items'] => 
                 [0] => Array
                 (
                    [ID] => 1
                    [CID] => 2
                    [Description] => Källorna refereras separat
                 )

                 [1] => Array
                 (
                    [ID] => 2
                    [CID] => 2
                    [Description] => Vissa försök till sammanbindning
                  )