2010-09-03 10 views
5

szukam na to lepszy sposób, bez konieczności hardcode całkowitymi dla $justPrices[$i]:Lepsze PHP array_merge

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

$justPrices to wielowymiarowa tablica, zawierająca 4 „zespoły” z cenami w każdej tablicy. Dane dla $justPrices są na przykład:

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

Chodzi o to, że ilość łańcuchów ciągu $justPrices różni się od co najmniej 2 do 10+. Tak więc potrzebuję sposobu na zmianę parametrów funkcji array_merge() w zależności od ilości tablic w zakresie $justPrices. Chciałem w ten prosty sposób, aby uzyskać ilość tablic ciągu $justPrices:

$justPricesMax = count($justPrices); 

mógłbym napisać for loop, i nadal może, po prostu zastanawiałem się, czy istnieje lepszy sposób na to, co wydaje się na powierzchni stosunkowo proste!

+0

Jakiego wyniku oczekujesz? – Gumbo

+0

@Gumbo to pojedyncza tablica zawierająca wszystkie ceny. Używam tego po średniej cenie. – freeMagee

Odpowiedz

10

Jeśli chcesz tylko spłaszczyć tablicy, można użyć call_user_func_array zadzwonić array_merge z elementami $justPrices jak parametry:

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

Jest to odpowiednik wywołania funkcji:

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

+1: Uwielbiam zlew kuchenny PHP. – shamittomar

+1

To jest dosłownie to. Fantastyczna odpowiedź. – freeMagee