2012-06-08 73 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