首页  >  文章  >  后端开发  >  php怎么切割数组?内置函数介绍

php怎么切割数组?内置函数介绍

PHPz
PHPz原创
2023-04-20 15:06:071359浏览

在PHP中,有时候我们需要将一个数组按照一定的规则进行切割,比如按照某个字段的值进行切割,或者按照一定的长度进行切割等等。这时候,我们可以使用PHP中提供的一些函数来完成这个任务。本文将介绍如何使用PHP函数来切割数组。

一、使用array_chunk()函数来切割数组

array_chunk()函数可以将一个数组按照指定的长度进行切割,每个切割出来的部分保存在一个新的数组项里面。具体的语法如下:

array array_chunk(array $array, int $size, bool $preserve_keys = false)

各个参数的含义如下:

  • $array: 要切割的数组。
  • $size: 每个新的数组项包含的元素个数。
  • $preserve_keys: 是否保留原数组的键名。

例如,如果有一个数组$nums=['1','2','3','4','5','6','7','8','9'],我们想将这个数组按照每个数组项包含3个元素来切割,可以使用如下代码:

$new_array = array_chunk($nums,3);
print_r($new_array);

输出结果如下:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )

)

二、使用array_slice()函数来切割数组

array_slice()函数可以按照指定的索引范围来切割数组,返回切割后的数组。具体的语法如下:

array array_slice(array $array, int $offset, int $length = null, bool $preserve_keys = false)

各个参数的含义如下:

  • $array: 要切割的数组。
  • $offset: 切割的开始索引。
  • $length: 切割的长度,如果不指定,将会切割到数组末尾。
  • $preserve_keys: 是否保留原数组的键名。

例如,如果有一个数组$nums=['1','2','3','4','5','6','7','8','9'],我们想将这个数组从第4个元素开始切割到第7个元素,可以使用如下代码:

$new_array = array_slice($nums,3,4);
print_r($new_array);

输出结果如下:

Array
(
    [0] => 4
    [1] => 5
    [2] => 6
    [3] => 7
)

三、使用array_filter()函数来切割数组

array_filter()函数可以将一个数组按照指定的规则进行过滤,返回符合条件的数组。具体的语法如下:

array array_filter(array $array, callable $callback = null, int $flag = 0)

各个参数的含义如下:

  • $array: 要切割的数组。
  • $callback: 过滤函数,如果指定了函数,函数将用于过滤数组元素。
  • $flag: 标识符,指定数组的键关系是否保持原样。

例如,如果有一个数组$nums=['1','2','3','4','5','6','7','8','9'],我们想将这个数组过滤出奇数元素,可以使用如下代码:

$new_array = array_filter($nums,function($var){return ($var%2==1);});
print_r($new_array);

输出结果如下:

Array
(
    [0] => 1
    [2] => 3
    [4] => 5
    [6] => 7
    [8] => 9
)

四、使用foreach循环来切割数组

除了使用PHP提供的函数来切割数组,我们也可以使用foreach循环来完成这个任务。具体的代码如下:

$nums=['1','2','3','4','5','6','7','8','9'];
$new_array=array();
$temp_array=array();
foreach ($nums as $key=>$value){
    $temp_array[]=$value;
    if(($key+1)%3==0||$key==count($nums)-1){
        $new_array[]=$temp_array;
        $temp_array=array();
    }
}
print_r($new_array);

输出结果如下:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )

)

以上就是使用PHP来切割数组的四种方法,您可以根据实际情况选择合适的方法来完成任务。

以上是php怎么切割数组?内置函数介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn