如何使用PHP中的array_slice()函数将数组分成两个相等的部分?
我的要求:
第一个数组包含:0-1200
第二个数组包含:1200-结尾
$quantity = count($original_collection);
$collection1 = array_slice($original_collection, 0, intval($quantity / 2), true);
$collection2 = array_diff_key($original_collection, $collection1);
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;
$array1 = array_slice($array, 0, 1199);
$array2 = array_slice($array, 1200);
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));
?>
floor(count($input)/2)
),这样结果将是包含一半记录的两个数组。 - maiorano84$array1 = array_slice($input, 0, 1200);
$array2 = array_slice($input, 1200);
$array1; // your original array with all records
$array2 = array_splice($array1, ceil(count($array1)/2));
// or per your requirement of 1200 in the first array:
$array2 = array_splice($array1, 1200);
这只是从原始数组中弹出第二半部分元素并将它们放入第二个数组中。不确定使用array_slice
两次的优点,就像其他答案提到的那样,除非您想要2个新数组并且不想从原始数组中删除任何元素。
array_slice
和array_diff_key
的优势是什么,而不是只使用一次array_splice
呢? - Chris