-3

我有一个包含 200-7000 个值的数组。我想根据定义的值将此数组拆分为更小的块。

例如:

该数组有 1731 个值,我想将其分解为更小的数组,每个数组只有50 个值。

这是怎么做到的?我坚持的部分是将其分解为每个 50 个值。

先感谢您。

4

3 回答 3

5

https://www.php.net/array_chunk

array_chunk($array, 50) 返回一个数组,每个值都是一个数组,每个值都来自 $array 的 50 个值。

//make an array with numbers from 1 to 500
$array = range(1, 500);
//break that array up into chunks of 50.
$newArray = array_chunk($array, 50);
//display the new array
var_dump($newArray);

示例:http ://codepad.viper-7.com/JNzSWO

于 2012-09-01T03:11:29.853 回答
0

使用数组块函数:

将数组分块成大小较大的块。最后一个块可能包含小于 size 的元素。

用法:

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

例子:

输入:

<?php
    $input_array = array('a', 'b', 'c', 'd', 'e');
    print_r(array_chunk($input_array, 2));
    print_r(array_chunk($input_array, 2, true));
?>

输出:

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

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

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

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

    [2] => Array
        (
            [4] => e
        )

)

所以,如果你有一个arraynamed $a,你会使用:

$components = array_chunk($a, 50, true);
于 2012-09-01T03:16:03.853 回答
0

使用array_chunk()

例如:

$array = range(1, 1731);
if(count($array) => 200 || count($array) <= 7000)){
    $split = array_chunk($input_array, 50, true);
} else {
    $split = $array;
}
var_export($split);

$split如果初始数组的计数器大于 200 且小于 7000,将有大约 35 个数组

于 2012-09-01T03:16:22.013 回答