2010-09-03 18 views
5

Estoy buscando para hacer esto de una mejor manera y sin la necesidad de codificar los números enteros para $justPrices[$i]:Una mejor php array_merge

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

$justPrices es una matriz multidimensional, que contiene 4 'bandas' de los precios dentro de cada matriz. Los datos para $justPrices siendo, por ejemplo:

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)) 

La cuestión es que la cantidad de matrices dentro de $justPrices variará de al menos 2 a 10+. Así que necesito una forma para que los parámetros de la función array_merge() varíen en función de la cantidad de matrices en $justPrices. Yo iba a utilizar este método simple para obtener la cantidad de matrices dentro $justPrices:

$justPricesMax = count($justPrices); 

podría escribir un for loop, y podría aún así, me preguntaba si había un método mejor de lo que parece en la superficie ¡relativamente simple!

+0

¿Qué resultado esperas? – Gumbo

+0

@Gumbo una única matriz que contiene todos los precios. Lo estoy usando para un precio promedio después. – freeMagee

Respuesta

10

Si lo que desea es aplanar la matriz, puede utilizar call_user_func_array llamar array_merge con los elementos de $justPrices como parámetros:

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

Esto es equivalente a una la función de llamada:

$flat = array_merge($justPrices[0], $justPrices[1], … , $justPrices[count($justPrices)-1]); 
+2

+1: Me encanta el fregadero de la cocina PHP. – shamittomar

+1

Eso es literalmente eso. Fantástica respuesta. – freeMagee