从php array_slice获取继续索引数组

时间:2014-07-29 17:56:54

标签: php slice

我正在从php array_slice函数切片动态值。获得重复的值  数组(0,1,2,3,0,1,2,3)但想要数组(0,1,2,3,4,5,6,7,8);请给我解决方案

修改

if($rooms == 2) { 
    $roomTwoAdults = array_slice($adults,0,2); 
    $roomTwokids = array_slice($childrens,0,2); 
    for($i=0; $i<sizeof($roomTwokids);$i++) { 
        $roomTwokidsAge = array_slice($kidsAge,0,$roomTwokids[$i],TRUE); 
        print_r($roomTwokidsAge); 
    } 
}

我将值传递给

array(3,6,9,12)

动态但我得到的结果数组是

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

1 个答案:

答案 0 :(得分:0)

好吧,假设您的数组是如此组合:

$array = array(0, 1, 2, 3, 4, 5, 6, 7, 8);

array_slice函数为您提供部分功能,例如:`

array_slice($array, 7);

给你[7,8]

array_slice($array, 3, 5);

给你[3,4,5]

您可以访问最后的值,使用负整数访问它,例如:

array_slice($array -1, 1);

给你[8]

它如何组成你的数组?如果它在我的例子中你可以使用它:

$new_array = array_slice($array, 0);

或者,如果你喜欢负数:

$new_array = array_slice($array, -9);

假设你想获得这些数组:

Array ( [0] => 3 [1] => 6 [2] => 9 ) Array ( [3] => 12 ) 

你可以使用这段代码:

if($rooms == 2) { 
    $roomTwoAdults = array_slice($adults,0,2); 
    $roomTwokids = array_slice($childrens,0,2); 
    for($i=0; $i<key($roomTwokids) + 1;$i++) { 
        $roomTwokidsAge = array_slice($kidsAge,0,$roomTwokids[$i],TRUE); 
        print_r($roomTwokidsAge); 
    }
    // key of array returns key of the element pointed by internal pointer: in our case, 0
    for($i=0; $i<key($roomTwokids) + 1;$i++) { 
        // get the third position of the array (value is 12) -> array_slice($kidsAge, 3) <- 3 is the value of $roomTwokids[0]
        $roomTwokidsAge = array_slice($kidsAge,$roomTwokids[$i], true); 
        print_r($roomTwokidsAge); 
    }
}

将其用作数组:

array(3, 6, 9, 12);