2017-08-11 5 views
-4
Array 
(
    [Colour] => Array 
     (
      [Red] => Red 
      [Blue] => Blue 
     ) 

    [Size] => Array 
     (
      [Small] => Small 
      [Medium] => Medium 
      [Large] => Large 
     ) 

    [Brand] => Array 
     (
      [Nike] => Nike 
      [Adidas] => Adidas 
     ) 

) 

comment puis-je dimensionner le tableau à plusieurs pour obtenir cette sortie de variation:tableau PHP Aplatir avec la sortie de variation

Red - Small - Nike 
Red - Medium - Nike 
Red - Large - Nike 
Red - Small - Adidas 
Red - Medium - Adidas 
Red - Large - Adidas 
Blue - Small - Nike 
Blue - Medium - Nike 
Blue - Large - Nike 
Blue - Small - Adidas 
Blue - Medium - Adidas 
Blue - Large - Adidas 
+0

Qu'avez-vous essayé? Montrez votre tentative (s) et vous obtiendrez de meilleures réponses. – Script47

+0

@ Script47 j'ai havent, c'est pourquoi j'ai demandé une solution – tonoslfx

+6

En tant qu'utilisateur 1K plus rep, vous savez que ce n'est pas comment ça fonctionne. [Mais juste au cas où vous ne saviez jamais ...] (https://stackoverflow.com/help/how-to-ask) – Script47

Répondre

2

Ce que vous cherchez est un produit cartésien .

combiner les valeurs comme ceci:

$data = [ 
    'Colour' => [ 
     'Red' => 'Red', 
     'Blue' => 'Blue', 
    ], 
    'Size' => [ 
     'Small' => 'Small', 
     'Medium' => 'Medium', 
     'Large' => 'Large', 
    ], 
    'Brand' => [ 
     'Nike' => 'Nike', 
     'Adidas' => 'Adidas', 
    ], 
]; 

$combined = []; 

foreach ($data['Colour'] as $colour) { 
    foreach ($data['Brand'] as $brand) { 
     foreach ($data['Size'] as $size) { 
      $combined[] = implode(' - ', [ 
       $colour, 
       $size, 
       $brand 
      ]); 
     } 
    } 
} 

var_dump($combined); 

Pour référence, voir:

Pour un exemple, voir:

+0

merci - cela me donne maintenant une idée :) – tonoslfx