📅  最后修改于: 2023-12-03 14:45:23.617000             🧑  作者: Mango
在 PHP 中,有时候我们需要将一个数组分成两半。这个操作不仅仅只是简单的把数组从中间分开,而是要把数组的元素尽可能均匀地分成两部分。
下面是一段 PHP 代码片段,用来将一个数组分成两半。
/**
* 把一个数组分成两半
*
* @param array $arr 要分割的数组
*
* @return array 分割后得到的两个数组
*/
function split_array(array $arr)
{
$count = count($arr);
$half = ceil($count / 2);
$arr1 = array_slice($arr, 0, $half);
$arr2 = array_slice($arr, $half);
return [$arr1, $arr2];
}
这个函数非常简单,接受一个数组作为参数,然后将这个数组分成两个数组并返回。这个函数的实现方式很简单,就是使用了 PHP 的 array_slice
函数来实现数组分割的操作。
array_slice
函数的第一个参数是要分割的数组,第二个参数是要分割的起始位置,第三个参数是要分割的长度。因为我们要把数组分成两半,所以第二个参数是 0,第三个参数是数组长度的一半。
为了处理元素数量为奇数的情况,我们使用了 PHP 的 ceil
函数把数组长度除以 2 后向上取整。这个操作可以保证我们得到的两个数组大小尽可能相等。
最后,我们把两个数组封装成一个数组返回。
这个函数的用法非常简单。只需要调用 split_array
函数,并传入要分割的数组作为参数。然后这个函数就会返回两个数组,这两个数组包含了原来的数组元素的一半。
$arr = [1, 2, 3, 4, 5];
list($arr1, $arr2) = split_array($arr);
print_r($arr1); // 输出 [1, 2, 3]
print_r($arr2); // 输出 [4, 5]