php 分割数组

在 PHP 中,可以使用以下方法之一来分割数组:

  1. array_chunk() 函数:将一个数组分割成多个小的数组块。每个小数组块的大小由指定的长度参数决定。

    $arr = array("a", "b", "c", "d", "e", "f", "g", "h");
    $chunks = array_chunk($arr, 3);
    print_r($chunks);
    

    在上面的示例中,array_chunk() 函数将 $arr 数组分割成了大小为 3 的小数组块,并将这些数组块存储在 $chunks 数组中。print_r() 函数用于打印数组的内容。

    输出结果:

    Array
    (
        [0] => Array
            (
                [0] => a
                [1] => b
                [2] => c
            )
    
        [1] => Array
            (
                [0] => d
                [1] => e
                [2] => f
            )
    
        [2] => Array
            (
                [0] => g
                [1] => h
            )
    
    )
    
  2. array_slice() 函数:从一个数组中取出一段连续的元素(可以用负数索引从末尾开始计算)。

    $arr = array("a", "b", "c", "d", "e", "f", "g", "h");
    $slice1 = array_slice($arr, 0, 3);
    $slice2 = array_slice($arr, 3, 3);
    $slice3 = array_slice($arr, -2);
    print_r($slice1);
    print_r($slice2);
    print_r($slice3);
    

    在上面的示例中,array_slice() 函数将 $arr 数组分割成了三个小数组块,并将这些数组块存储在 $slice1$slice2$slice3 中。第一个参数是原数组,第二个参数是从哪个索引开始取元素,第三个参数是取多少个元素。如果省略第三个参数,则会取出从第二个参数指定的索引到原数组的末尾的所有元素。

    输出结果:

    Array
    (
        [0] => a
        [1] => b
        [2] => c
    )
    Array
    (
        [0] => d
        [1] => e
        [2] => f
    )
    Array
    (
        [0] => g
        [1] => h
    )
    
  3. array_splice() 函数:从一个数组中移除一段连续的元素,并将它们替换为其他元素。

    $arr = array("a", "b", "c", "d", "e", "f", "g", "h");
    $removed = array_splice($arr, 2, 3, array("x", "y", "z"));
    print_r($removed);
    print_r($arr);
    

在上面的示例中,array_splice() 函数将 $arr 数组中从索引 2 开始的 3 个元素(‘c’,‘d’ 和 ‘e’)移除,并用 array("x", "y", "z") 中的元素替换它们。移除的元素被存储在 $removed 数组中。第一个参数是要修改的数组,第二个参数是从哪个索引开始移除元素,第三个参数是要移除多少个元素,后面的参数是要插入到原数组中的元素。

输出结果:

Array
(
    [0] => c
    [1] => d
    [2] => e
)
Array
(
    [0] => a
    [1] => b
    [2] => x
    [3] => y
    [4] => z
    [5] => f
    [6] => g
    [7] => h
)

在 PHP 8 中,可以使用 array_chunk() 函数来将一个数组分割成多个小数组块,每个小数组块的大小由指定的长度参数决定。与 PHP 7 不同的是,在 PHP 8 中,可以使用问号 (?) 来为函数参数设置默认值。因此,可以设置第二个参数 $size 的默认值为 1

以下是一个例子:

$arr = ["a", "b", "c", "d", "e", "f", "g", "h"];
$chunks = array_chunk($arr, size: 3);
print_r($chunks);

在上面的示例中,array_chunk() 函数将 $arr 数组分割成大小为 3 的小数组块,并将这些数组块存储在 $chunks 数组中。size: 语法用于指定 $size 参数的值。注意,当使用问号来为参数设置默认值时,不能再使用传统的位置参数来调用函数,而必须使用关键字参数来调用函数。

输出结果为:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => d
            [1] => e
            [2] => f
        )

    [2] => Array
        (
            [0] => g
            [1] => h
        )
)

值得注意的是,PHP 8 中的 array_chunk() 函数还支持通过指定第三个参数 $preserve_keys 来保留原数组中的键,而不是重置键。如果将 $preserve_keys 参数设置为 true,则新的小数组块将带有与原始数组相同的键。如果将其设置为 false,则新的小数组块将重置键并按顺序从 0 开始编号。可以像这样使用关键字参数来指定 $preserve_keys 参数的值:

$arr = ["a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5];
$chunks = array_chunk($arr, size: 2, preserve_keys: true);
print_r($chunks);

在上面的示例中,$arr 数组中的元素都有一个关联键。array_chunk() 函数将 $arr 数组分割成大小为 2 的小数组块,并将这些数组块存储在 $chunks 数组中。通过将 preserve_keys: 参数设置为 true 来保留原数组的关联键。输出结果如下:

Array
(
    [0] => Array
        (
            [a] => 1
            [b] => 2
        )

    [1] => Array
        (
            [c] => 3
            [d] => 4
        )

    [2] => Array
        (
            [e] => 5
        )
)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值