Лучший php array_merge - PullRequest
       7

Лучший php array_merge

5 голосов
/ 03 сентября 2010

Я стремлюсь сделать это лучше без необходимости жестко кодировать целые числа для $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, и я мог бы все еще, я просто задавался вопросом, был ли лучший методза то, что кажется на первый взгляд относительно простым!

1 Ответ

10 голосов
/ 03 сентября 2010

Если вы просто хотите сгладить массив, вы можете использовать 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]);
...