我想从数组中返回前5项。我怎么能这样做?
答案 0 :(得分:250)
答案 1 :(得分:7)
array_splice - 删除数组的一部分并将其替换为其他内容:
$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]])
如果省略长度,则删除从偏移到数组末尾的所有内容。如果指定了length并且是正数,那么将删除那么多元素。如果指定了length并且为负,那么被移除部分的末尾将是来自数组末尾的许多元素。提示:当指定替换时,要删除从偏移到数组末尾的所有内容,请使用count($ input)作为长度。
答案 2 :(得分:1)
如果你只想输出前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 );
}
?>
答案 3 :(得分:0)
您可以使用array_slice函数,但是您会使用其他值吗?还是只有前5?因为如果你只使用前5个,你可以在SQL上使用LIMIT。
答案 4 :(得分:-4)
更面向对象的方法是为#[]方法提供范围。例如:
假设您想要数组中的前3个项目。
数字= [1,2,3,4,5,6]
数字[0..2]#=&gt; [1,2,3]
假设您想要数组中的前x项。
号[0..X-1]
这个方法的好处是如果你要求的项目多于数组,它只返回整个数组。
数字[0..100]#=&gt; [1,2,3,4,5,6]