2014-01-08 1304 views
0

多維數組我需要構造這個數組:構建在PHP

Array(
    [Creativo] => Array(
     [C1] => Array(
     [0] => O10 
     [1] => O11 
    ) 
     [C2] => Array(
     [0] => O12 
     [1] => O13 
     [2] => O14 
    ) 
) 
    [Detallista] => Array(
     [C3] => Array(
     [0] => O15 
     [1] => O16 
     [2] => O17 
    ) 
     [C4] => Array(
     [0] => O18 
     [1] => O19 
    ) 
) 
    [Emprendedor] => Array(
     [C5] => Array(
     [0] => O20 
    ) 
     [C6] => Array(
     [0] => O21 
    ) 
) 
) 

而且我獲得以下數組:

Array(
    [Creativo] => Array(
    [0] => C1 
    [1] => C2 
) 
    [Detallista] => Array(
    [0] => C3 
    [1] => C4 
) 
    [Emprendedor] => Array(
    [0] => C5 
    [1] => C6 
) 
) 

我搜索鍵和值從的mysql_query。我的錯誤可能是array_key_exists或array_push,C1,C2,C3,C4 .......是客戶,我希望客戶是關鍵,而不是價值。該代碼是:

$tagsTree = array(); 
$customersTree = array(); 
$queryResult = mysql_query("SELECT T.name AS Etiqueta, C.id AS Cliente, O.id AS Pedido, O.total AS Total 
                    FROM `Tag` T 
                    JOIN CustomerTag CT ON T.name=CT.tagName LEFT JOIN Customer C ON CT.customerId=C.id LEFT JOIN `Order` O ON C.id=O.customerId") or die('Error al consultar los pedidos asociados a los clientes etiquetados: '.mysql_error());; 

while($treeDB = mysql_fetch_assoc($queryResult)){ 
    if(empty($treeDB)){ 
    } 
    else{ 
     if(!array_key_exists($treeDB["Etiqueta"], $tagsTree)){ 
      $tagsTree[$treeDB["Etiqueta"]] = array(); 
     } 
     if(!array_key_exists($treeDB["Cliente"], $customersTree)){ 
      $customersTree[$treeDB["Cliente"]] = array(); 
     } 
     array_push($tagsTree[$treeDB["Etiqueta"]], $treeDB["Cliente"]); 
     array_push($customersTree[$treeDB["Cliente"]], $treeDB["Pedido"]); 
    } 
} 

問候

回答

0

你不能有對象作爲鍵。

但是,您可以創建一個包含所有對象的映射數組,其中的鍵是某種唯一的ID(如SQL ID或唯一別名)。

+0

是的我可以,我之前做過,但我不記得如何。 – nandophillips

+0

這樣的? http://stackoverflow.com/a/4643002/322377 –

+0

這是真的,因此我把'如果(!array_key_exists)' - >創建它...檢查腳本。 – nandophillips