Une meilleure php array_merge
-
30-09-2019 - |
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!
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]);