2010-09-03 7 views
5

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

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

$justPrices est un tableau multidimensionnel, contenant 4 « bandes » des prix dans chaque tableau. Les données pour $justPrices étant 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 groupements au sein de $justPrices varie d'au moins 2 à 10+. J'ai donc besoin d'un moyen pour que les paramètres de la fonction array_merge() varient 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 à la surface relativement simple!

+0

Quel résultat attendez-vous? – Gumbo

+0

@Gumbo un seul tableau contenant tous les prix. J'utilise cela pour une chose à prix moyen par la suite. – freeMagee

Répondre

10

Si vous voulez juste pour aplatir le tableau, vous pouvez utiliser call_user_func_array appeler array_merge avec les éléments de $justPrices comme 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]); 
+2

+1: J'adore l'évier de cuisine PHP. – shamittomar

+1

C'est littéralement ça. Réponse fantastique. – freeMagee