📜  php 将数组分成两半 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:23.617000             🧑  作者: Mango

PHP 将数组分成两半

在 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]