2013-02-27 8 views
0

J'ai 2 tableaux 2D avec des valeurs renvoyées à partir de la base de données.php fusionnant 2 tableaux

Actuellement, je suis en train de faire une boucle foreach et mettre les valeurs retournées sur une table séparée par tableau:

par exemple:

<table> 
    <tr> 
     <td>Auto Bavaria Midrand BMW</td> 
     <td>63</td> 
     <td>39</td> 
    </tr> 
    ... 
</table> 
<table> 
<tr> 
    <td>Auto Bavaria Midrand BMW</td> 
    <td>40</td> 
    <td>15</td> 
    ... 
</tr> 
</table> 

Mais je dois retourner les valeurs dans ce format, seulement 1 tableau:

<table> 
    <tr> 
    <td>Auto Bavaria Midrand BMW</td> 
    //the name of the record does not need to be repeated, only the values 
    <td>63</td> 
    <td>39</td> 
    <td>40</td> //values from 2nd array 
    <td>15</td> // values from 2nd array 
    </tr> 
     ...//next record set 
</table> 

Array 
(
    [0] => Array 
     (
      [DealerName] => Auto Bavaria Midrand BMW 
      [dealersContacted] => 63 
      [DealerContact_Y] => 39 
      [DealerContact_N] => 15 
      [DealerShipId] => 21730 
      [DataId] => 23527 
     ) 
    //extra returned records 
) 

Array 
(
    [0] => Array 
     (
      [DealerName] => Auto Bavaria Midrand BMW 
      [dealersContacted] => 65 
      [DealerContact_Y] => 40 
      [DealerContact_N] => 15 
      [DealerShipId] => 21730 
      [DataId] => 23527 
     ) 

    //extra returned records 
) 

je peux faire du côté php de celui-ci, ma question est de savoir s'il y a une fonction de tableau qui peut fusionner seulement les bits nécessaires du tableau? J'ai cherché et je suis juste devenu de plus en plus confus.

+0

Je pense que les deux exemples qu'il donne sont supposés être différents. Et oui, vous aurez besoin de faire une boucle dans les tableaux vous-même - il n'y a pas de fonction magique intégrée. – zaf

Répondre

0

vous devez modifier la façon dont vous construisez la matrice lors de l'extraction à partir de la base de données, de sorte qu'au lieu d'un index numérique insignifiant, vous obteniez une clé significative. Dans votre exemple ci-dessus, vous souhaitez probablement utiliser DealerName en tant que clé. De cette façon, lorsque vous récupérez des éléments, vous les ajoutez simplement à l'emplacement approprié. Exemple:

while($rows = fetch_from_db($res)) { 
    $output[$rows['DealerName']]['dealersContacted'] = $rows['dealersContacted']; 
    $output[$rows['DealerName']]['DealerContact_Y'] = $rows['DealerContact_Y']; 
    // Add more keys here 
} 

de cette façon lorsque vous avez terminé de récupérer les deux ensembles de résultats, il ne vous reste plus qu'un seul tableau. Vous devez également planifier la gestion des index doubles, tels que les revendeurs contactés dans votre exemple.

+0

merci, cela fait beaucoup de sens. – user1882752