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