2010-09-03 14 views
5

Ich suche diese eine bessere Art und Weise, ohne die Notwendigkeit zu tun, die ganzen Zahlen für $justPrices[$i] hart codieren:Eine bessere PHP array_merge

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

$justPrices ist ein mehrdimensionales Array, das 4 ‚Bands‘ der Preise in den einzelnen Arrays. Die Daten für $justPrices sind zum Beispiel:

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

Das Problem ist, dass die Menge von Arrays innerhalb $justPrices von mindestens 2 bis 10+ variiert. Also brauche ich einen Weg für die Parameter für die array_merge() Funktion abhängig von der Anzahl der Arrays innerhalb $justPrices zu variieren. Ich wollte diese einfache Methode verwenden, um die Menge von Arrays innerhalb $justPrices erhalten:

$justPricesMax = count($justPrices); 

ich ein for loop schreiben konnte, und ich könnte immer noch, ich frage mich, ob es eine bessere Methode für das, was auf der Oberfläche scheint relativ einfach!

+0

Welches Ergebnis erwartest du? – Gumbo

+0

@Gumbo ein einzelnes Array mit allen Preisen. Ich benutze das für einen durchschnittlichen Preis später. – freeMagee

Antwort

10

Wenn Sie nur das Array glätten möchten, können Sie call_user_func_array verwenden array_merge mit den Elementen der $justPrices als Parameter zu nennen:

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

Dies entspricht einer der Funktionsaufruf:

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

+1: Liebe die PHP Spüle. – shamittomar

+1

Das ist es buchstäblich. Fantastische Antwort. – freeMagee

Verwandte Themen