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

发布于 2024-10-30 19:30:16 字数 112 浏览 4 评论 0原文

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

这是我的要求:

第一个数组包含:0-1200

第二个数组包含:1200-end

how to split an array in to two equal parts using array_slice() in PHP ?

This is my requirement:

First array contains: 0-1200

Second array contains: 1200-end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

荒路情人 2024-11-06 19:30:16

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,因此这应该是您所需要的。

From the documentation for array_slice, all you have to do is give array_slice an offset and a length.

In your case:

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

In other words, this code is telling array_slice:

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

Since index 1200 is item 1201, this should be what you need.

旧人九事 2024-11-06 19:30:16
$quantity = count($original_collection);

$collection1 = array_slice($original_collection, 0, intval($quantity / 2), true);
$collection2 = array_diff_key($original_collection, $collection1);
$quantity = count($original_collection);

$collection1 = array_slice($original_collection, 0, intval($quantity / 2), true);
$collection2 = array_diff_key($original_collection, $collection1);
豆芽 2024-11-06 19:30:16
$array1 = array_slice($array, 0, 1199);
$array2 = array_slice($array, 1200);
$array1 = array_slice($array, 0, 1199);
$array2 = array_slice($array, 1200);
善良天后 2024-11-06 19:30:16

我认为 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));
?>

I think array_chunk would be easier, especially as you don't need to know how many elements are in the array.

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));
?>
小情绪 2024-11-06 19:30:16
$array1 = array_slice($input, 0, 1200);
$array2 = array_slice($input, 1200);
$array1 = array_slice($input, 0, 1200);
$array2 = array_slice($input, 1200);
神也荒唐 2024-11-06 19:30:16

怎么样:

$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 个新数组并且不希望从原始数组中删除任何元素。

How about:

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

This just pops off the second half of elements from your original array and puts them in the second array. Not sure what the advantage of using array_slice twice like the other answers mention, unless you want 2 new arrays and don't want any elements removed from the original array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文