2012-06-08 76 views
0

問題:合併兩個陣列一起在一個會話用PHP

我有兩個陣列,其中一個產生的類別和該類別的第二產品的項目。我希望項目在每個類別內,但我無法使其工作。

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 [ '鑰匙']將包含:

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

$ _SESSION [ '項目']將包含:

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] =>集成AVkä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
$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 
       ) 
+0

我怎麼會做,如果我想要的物品爲[0 ] =>Källornarefereras separat和[1] => Vissaförsök直到sammanbindning? – kexxcream

+0

您可以通過以下方式訪問它們:$ final_arr [0] ['items'] [0] ['description'] AND $ final_arr [0] ['items'] [1] ['description']。 – DaneSoul

+0

高度讚賞! – kexxcream