2010-04-07 7 views
3

J'ai créé une fonction en PHP qui appelle un webservice et analyse le résultat, assigne des valeurs aux variables et les renvoie toutes en tant que tableau. Tout cela fonctionne parfaitement, mais je suis venu dans un besoin d'avoir un « tableau dans mon tableau »Ajout d'un tableau dans un tableau dans une fonction PHP

J'assigne des valeurs comme ci-dessous:

$productName = $product->Name; 
$productID = $product->ID; 

$productArray = array(
      'productName' => "$productName", 
      'productID' => "$productID" 
      ); 

return $productArray; 

Cependant, j'ai maintenant une donnée qui revient avec plusieurs résultats, donc j'ai besoin d'un tableau supplémentaire pour les stocker, je reçois les valeurs du XML retourné en utilisant une boucle foreach, mais je veux pouvoir les ajouter au tableau avec un nom afin que je puisse les référencer dans les données retournées, c'est où j'ai un problème ...

$bestForLists = $product->BestFors; 
     foreach($bestForLists as $bestForList) 
     { 
      $productBestFors = $bestForList->BestFor; 
      foreach($productBestFors as $productBestFor) 
       { 
        $productBestForName = $productBestFor->Name; 
        $productBestForID = $productBestFor->ID; 
       } 
     } 

J'ai essayé de créer un tableau pour ces utilisant le code ci-dessous:

$bestForArray[] = (array(
       "productBestForID" => "$productBestForID", 
       "productBestForName" => "$productBestForName" 
       )); 

Et puis à la fin de fusionner ces ensemble:

$productArray= array_merge($productArray,$bestForArray); 

Si j'imprimer la valeur retournée je reçois:

Array ([productName] => Test Product [productID] => 14128 [0] => Array ([productBestForID] => 56647 [productBestForName] => Lighting) [1] => Array ([productBestForID] => 56648 [productBestForName] => Sound))    

Je voudrais donner un nom au tableau interne afin que je puisse le référencer dans mon code, ou y a-t-il une meilleure façon de faire, au moment où j'utilise ce qui suit dans ma page PHP pour obtenir des valeurs:

$productName = $functionReturnedValues['productName']; 

Je voudrais utiliser ce qui suit pour accéder au tableau que je pourrais ensuite en boucle à travers:

$bestForArray = $functionReturnedValues['bestForArray']; 

quelqu'un L'espoir peut aider

Répondre

3

vous pouvez écrire

$productArray['bestForArray'] = $bestForArray; 

place de

$productArray= array_merge($productArray,$bestForArray); 

Dites moi si cela fait l'affaire! Jerome Wagner

+0

Parfait, ne pensait pas que ce serait aussi simple que ça! Merci –

Questions connexes