Câu trả lời:
array_slice
trả về một lát của một mảng
$sliced_array = array_slice($array, 0, 5)
là mã bạn muốn trong trường hợp của bạn để trả về năm phần tử đầu tiên
array_combine(array_slice(array_keys($array), 0, 5), array_slice($array, 0, 5))
array_slice
trả về một lát của một mảng". Nhưng tôi sẽ chỉnh sửa câu trả lời của mình để làm cho nó rõ ràng hơn một chút.
mảng_splice - Xóa một phần của mảng và thay thế nó bằng một thứ khác:
$input = array(1, 2, 3, 4, 5, 6);
array_splice($input, 5); // $input is now array(1, 2, 3, 4, 5)
Từ hướng dẫn sử dụng PHP:
array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement]])
Nếu độ dài bị bỏ qua, loại bỏ mọi thứ từ phần bù đến phần cuối của mảng . Nếu độ dài được chỉ định và là dương, thì nhiều yếu tố sẽ bị xóa. Nếu độ dài được chỉ định và âm thì phần cuối của phần bị loại bỏ sẽ là nhiều phần tử từ cuối mảng. Mẹo: để xóa mọi thứ từ offset đến cuối mảng khi thay thế cũng được chỉ định, hãy sử dụng số đếm ($ input) cho chiều dài.
Nếu bạn chỉ muốn xuất 5 phần tử đầu tiên, bạn nên viết một cái gì đó như:
<?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;
}
}
?>
Nếu bạn muốn viết một hàm trả về một phần của mảng, bạn nên sử dụng Array_slice:
<?php
function GetElements( $an_array, $elements ) {
return array_slice( $an_array, 0, $elements );
}
?>
Một cách hướng đối tượng hơn sẽ là cung cấp một phạm vi cho phương thức # []. Ví dụ:
Giả sử bạn muốn 3 mục đầu tiên từ một mảng.
số = [1,2,3,4,5,6]
số [0..2] # => [1,2,3]
Giả sử bạn muốn các mục x đầu tiên từ một mảng.
số [0..x-1]
Điều tuyệt vời của phương thức này là nếu bạn yêu cầu nhiều mục hơn mảng có, nó chỉ đơn giản trả về toàn bộ mảng.
số [0..100] # => [1,2,3,4,5,6]