Question

Je cherche à faire une meilleure façon sans qu'il soit nécessaire de coder les entiers pour $justPrices[$i]:

$pricesResult = array_merge($justPrices[0], $justPrices[1], $justPrices[2], $justPrices[3]);

$justPrices est un tableau multidimensionnel, contenant 4 « bandes » de prix à l'intérieur de chaque réseau. Les données pour $justPrices être par exemple:

Array ( [0] => Array ( [0] => 40.95 [1] => 39.95 [2] => 39.45 [3] => 38.95 ) [1] => Array ( [0] => 45.80 [1] => 41.80 [2] => 41.50 [3] => 41.40 ) [2] => Array ( [0] => 45.95 [1] => 42.95 [2] => 41.95 [3] => 41.45 ) [3] => Array ( [0] => 50.00 [1] => 50.00 [2] => 50.00 [3] => 50.00 ) )

Le problème est que la quantité de tableaux dans les $justPrices varie d'au moins 2 à 10+. Donc je besoin d'un moyen pour les paramètres de la fonction array_merge() de varier en fonction de la quantité de tableaux dans $justPrices. J'allais utiliser cette méthode simple pour obtenir la quantité de tableaux dans les $justPrices:

$justPricesMax = count($justPrices);

Je pourrais écrire un for loop, et je pourrais encore, je me demandais s'il y avait une meilleure méthode pour ce qui semble sur la surface relativement simple!

Était-ce utile?

La solution

Si vous voulez juste pour aplatir le tableau, vous pouvez utiliser call_user_func_array pour appeler array_merge avec les éléments de $justPrices en tant que paramètres:

$flat = call_user_func_array('array_merge', $justPrices);

Cela équivaut à un appel de fonction:

$flat = array_merge($justPrices[0], $justPrices[1], … , $justPrices[count($justPrices)-1]);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top