从数组中返回第一个 x 项

我想从数组中返回前5个项。我该怎么做呢?

122398 次浏览

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]])

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

array_slice 返回数组的一个片

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

是返回前五个元素的代码

如果你只想输出前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个,那么您可以在 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]