从数组返回第一个x项

时间:2009-10-15 10:08:09

标签: php arrays

我想从数组中返回前5项。我怎么能这样做?

5 个答案:

答案 0 :(得分:250)

array_slice返回一个数组的片段

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

是您在案例中想要返回前五个元素的代码

答案 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]