从数组中返回前x个项目

我想从数组中返回前5个项目。 我怎样才能做到这一点?

array_slice返回一个数组的片段

 $sliced_array = array_slice($array, 0, 5) 

是你想要返回前五个元素的代码

array_splice – 删除数组的一部分,并用其他东西replace它:

 $input = array(1, 2, 3, 4, 5, 6); array_splice($input, 5); // $input is now array(1, 2, 3, 4, 5) 

从PHP手册:

 array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement]]) 

如果省略了长度,则删除从偏移量到数组末尾的所有内容 。 如果长度被指定并且是正的,那么许多元素将被移除。 如果指定了长度并且是负数,那么被移除部分的结尾将是数组末尾的许多元素。 提示:如果还指定了replace,则要从偏移量到数组末尾删除所有内容,请使用count($ input)作为长度。

如果你只是想输出前5个元素,你应该写如下的东西:

 <?php if (!empty ( $an_array ) ) { $min = min ( count ( $an_array ), 5 ); $i = 0; foreach ($value in $an_array) { echo $value; $i++; if ($i == $min) break; } } ?> 

如果你想写一个函数返回数组的一部分,你应该使用array_slice:

 <?php function GetElements( $an_array, $elements ) { return array_slice( $an_array, 0, $elements ); } ?> 

你可以使用array_slice函数,但是你会使用其他值吗? 还是只有第5个? 因为如果你只使用前5个,你可以使用SQL上的LIMIT。

更加面向对象的方式是为#[]方法提供一个范围。 例如:

假设你想要一个数组的前3个项目。

数字= [1,2,3,4,5,6]

数字[0..2]#=> [1,2,3]

假设你想要一个数组中的第一个x项目。

号码[0..X-1]

关于这个方法的好处是如果你要求比数组多的项目,它只是返回整个数组。

数字[0..100]#=> [1,2,3,4,5,6]