6

の整数をハードコードする必要なく、これをより良い方法で行うことを検討しています$justPrices[$i]

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

$justPrices各配列内に価格の 4 つの「バンド」を含む多次元配列です。$justPricesたとえば、データは次のとおりです。

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

問題は、内の配列の量が$justPrices少なくとも 2 から 10+ まで変化することです。そのため、関数のパラメーターがarray_merge()内の配列の量に応じて変化する方法が必要$justPricesです。この単純な方法を使用して、内の配列の量を取得するつもりでした$justPrices:

$justPricesMax = count($justPrices);

を書くことはできましたがfor loop、それでも表面的には比較的単純に見えるものに対して、より良い方法があるかどうか疑問に思っただけです!

4

1 に答える 1

11

配列をフラットにしたいだけの場合は、 as パラメータの要素を使用call_user_func_arrayして呼び出すことができます。array_merge$justPrices

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

これは、関数呼び出しと同等です。

$flat = array_merge($justPrices[0], $justPrices[1], … , $justPrices[count($justPrices)-1]);
于 2010-09-03T10:06:40.297 に答える