如何使用php将数组拆分为两个相等的部分

use*_*334 8 php arrays slice

如何在PHP中使用array_slice()将数组拆分为两个相等的部分?

这是我的要求:

第一个数组包含:0-1200

第二个数组包含:1200-end

roc*_*est 13

array_slice的文档中,您所要做的就是给出array_slice一个偏移量和一个长度.

在你的情况下:

$firsthalf = array_slice($original, 0, 1200);
$secondhalf = array_slice($original, 1200);
Run Code Online (Sandbox Code Playgroud)

换句话说,这段代码告诉我们array_slice:

take the first 1200 records;
then, take all the records starting at index 1200;
Run Code Online (Sandbox Code Playgroud)

由于索引1200是项目1201,因此这应该是您所需要的.


小智 10

$quantity = count($original_collection);

$collection1 = array_slice($original_collection, 0, intval($quantity / 2), true);
$collection2 = array_diff_key($original_collection, $collection1);
Run Code Online (Sandbox Code Playgroud)


Sha*_*ngh 7

$array1 = array_slice($array, 0, 1199);
$array2 = array_slice($array, 1200);
Run Code Online (Sandbox Code Playgroud)


Pau*_*xon 6

我认为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));
?>
Run Code Online (Sandbox Code Playgroud)


Dej*_*vic 5

$array1 = array_slice($input, 0, 1200);
$array2 = array_slice($input, 1200);
Run Code Online (Sandbox Code Playgroud)