我想从数组中返回前5个项。我该怎么做呢?
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 返回数组的一个片
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]