2010-09-03 16 views
5

Sto cercando di fare questo un modo migliore, senza la necessità di codificare i numeri interi per $justPrices[$i]:Un php meglio array_merge

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

$justPrices è un array multidimensionale, contenente 4 'bande' di prezzi all'interno di ogni array. I dati per $justPrices essendo ad esempio:

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

Il problema è che la quantità di array all'interno $justPrices varierà da almeno 2 a 10+. Quindi ho bisogno di un modo per i parametri per la funzione array_merge() di variare a seconda della quantità di matrici entro $justPrices. Stavo per utilizzare questo metodo semplice per ottenere la quantità di array all'interno $justPrices:

$justPricesMax = count($justPrices); 

Potrei scrivere un for loop, e potrei ancora, mi chiedevo se ci fosse un metodo migliore per quello che sembra sulla superficie relativamente semplice!

+0

Quale risultato ti aspetti? – Gumbo

+0

@Gumbo un singolo array contenente tutti i prezzi. Lo sto usando per una cosa di prezzo medio in seguito. – freeMagee

risposta

10

Se si desidera solo per appiattire la matrice, è possibile utilizzare call_user_func_array per chiamare array_merge con gli elementi della $justPrices come parametri:

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

Ciò equivale ad una chiamata alla funzione:

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

+1: adoro il lavello da cucina di PHP. – shamittomar

+1

Questo è letteralmente. Risposta fantastica – freeMagee

Problemi correlati