使用基本数组从范围元素创建数组


Create an array from range elements with a base array

我有一个这样的数组

$baseArray = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 );

所以我想制作两个范围数组

$arrayOne = from index 5 - 10
$arrayTwo = from index 15 - 20

如何拆分$baseArray以在 php 中制作这样的数组?

有函数array_slice

$baseArray = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 );
$arrayOne = array_slice($baseArray, 5, 10);
$arrayTwo = array_slice($baseArray, 15, 20);

这应该适合您:

(仅当您的索引以 0 开头的数字时才有效)

$baseArray = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 );
$arrayOne = array();
$arrayTwo = array();
foreach($baseArray as $k => $v) {
    if($k >= 5 && $k <= 10)
        $arrayOne[] = $v;
    elseif($k >= 15 && $k <= 20)
        $arrayTwo[] = $v;
}
print_r($arrayOne);
print_r($arrayTwo);

输出:

阵列一:

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

数组二:

Array
(
    [0] => 16
    [1] => 17
    [2] => 18
    [3] => 19
    [4] => 20
)

可以尝试使用 for() & array_slice() 。例:

$baseArray = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 );
$newAr = array();
for($i = 5; $i < count($baseArray); $i += 10){
    $newAr[] = array_slice($baseArray, $i, 5);
}
print '<pre>';
print_r($newAr);
print '</pre>';