как разбить массив на две равные части, используя php - PullRequest
9 голосов
/ 06 апреля 2011

как разбить массив на две равные части, используя array_slice () в PHP?

Это мое требование:

Первый массив содержит: 0-1200

Второй массив содержит: 1200-конец

Ответы [ 5 ]

13 голосов
/ 06 апреля 2011

Начиная с документации для array_slice , все, что вам нужно сделать, это дать array_slice смещение и длину.

В вашем случае:

$firsthalf = array_slice($original, 0, 1200);
$secondhalf = array_slice($original, 1200);

Другими словами, этот код говорит array_slice:

take the first 1200 records;
then, take all the records starting at index 1200;

Поскольку индекс 1200 - это позиция 1201, это должно быть то, что вам нужно.

11 голосов
/ 09 августа 2011
$quantity = count($original_collection);

$collection1 = array_slice($original_collection, 0, intval($quantity / 2), true);
$collection2 = array_diff_key($original_collection, $collection1);
7 голосов
/ 06 апреля 2011
$array1 = array_slice($array, 0, 1199);
$array2 = array_slice($array, 1200);
6 голосов
/ 10 июля 2012

Я думаю, array_chunk будет проще, особенно если вам не нужно знать, сколько элементов в массиве.

array array_chunk ( array $input , int $size [, bool $preserve_keys = false ] )

<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
$size = ceil(count($input_array)/2));
print_r(array_chunk($input_array, $size));
print_r(array_chunk($input_array, $size, true));
?>
5 голосов
/ 06 апреля 2011
$array1 = array_slice($input, 0, 1200);
$array2 = array_slice($input, 1200);
...