获得数组范围的最佳方法

时间:2012-07-06 15:19:58

标签: php

我有数组,例如9键:

<?php

$array = array(3,1,4,5,7,34,32,12,13);

print_r($array);

我想从此数组中获取数据或删除其他值。

例如:

$first = 2;
$last = 5;

这应该归还我:

$new_array = array(1,4,5,7);

最好的方法是什么?

4 个答案:

答案 0 :(得分:5)

您可以使用函数array_slice

$sub_array = array_slice($array, $first - 1, count($array) - $last);

答案 1 :(得分:3)

答案 2 :(得分:1)

听起来你想要使用的是array_slice()函数:

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);      // returns "c", "d", and "e"
$output = array_slice($input, -2, 1);  // returns "d"
$output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?> 

对于你的问题:

<?php

$array = array(3,1,4,5,7,34,32,12,13);

$first = 2;
$last = 5;

$new_array = array_slice($array, $first - 1, $last - 1);
print_r($new_array);
// Array ( [0] => 1 [1] => 4 [2] => 5 [3] => 7 ) 
?>

答案 3 :(得分:1)

尝试array_splice

$array = array(3,1,4,5,7,34,32,12,13);
$first = 2;
$end = 5;
$length = ($end - $first);
$new_array = array_splice($array, $first, $end)