0

例如,我有 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

4 回答 4

5

您可以为此使用该功能array_slice

$sub_array = array_slice($array, $first - 1, count($array) - $last);
于 2012-07-06T15:22:16.463 回答
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 ) 
?>
于 2012-07-06T15:24:14.230 回答
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)
于 2012-07-06T15:25:23.883 回答