我正在从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 )
答案 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);