Tôi muốn trả lại 5 mục đầu tiên từ mảng. Tôi có thể làm cái này như thế nào?Trả lại các mục đầu tiên x từ mảng
Trả lời
array_slice
trả về một lát 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ả lại năm yếu tố đầu tiên
nhưng điều này sẽ không hoạt động với mảng kết hợp. các phím bị mất. – ESCOBAR
@ESCOBAR: mảng kết hợp không nhất thiết phải có thứ tự, chúng chỉ ánh xạ khóa tới giá trị; vì vậy "các giá trị từ 3 đến 7" không thực sự hợp lý ... – knittl
ngay, nhưng trong trường hợp này, nó không liên quan đến thứ tự. nó chỉ là về 5 mục đầu tiên. và bạn không thể sử dụng array_slice ở đây. – ESCOBAR
array_splice - Hủy bỏ một phần của mảng và thay thế bằng cái gì khác:
$input = array(1, 2, 3, 4, 5, 6);
array_splice($input, 5); // $input is now array(1, 2, 3, 4, 5)
Từ PHP dẫn sử dụng:
array array_splice (array &$input , int $offset [, int $length = 0 [, mixed $replacement]])
Nếu chiều dài được bỏ qua, loại bỏ tất cả mọi thứ từ bù đắp đến cùng của mảng. Nếu độ dài được xác định và là số dương, thì nhiều phần tử sẽ bị xóa. Nếu độ dài được xác định và âm thì phần cuối của phần bị loại bỏ sẽ là nhiều phần tử từ phần cuối của mảng. Mẹo: để loại bỏ tất cả mọi thứ từ bù đắp đến cuối mảng khi thay thế cũng được chỉ định, sử dụng đếm ($ đầu vào) cho chiều dài.
cú pháp trả về 5 phần tử đầu tiên là mảng_splice ($ input, 5) – aland
Cảm ơn, đã được sửa ngay bây giờ. –
@AndrejsCainikovs Theo php.net, "Nếu độ dài bị bỏ qua, thì trình tự sẽ có mọi thứ từ bù đắp cho đến khi kết thúc mảng." Văn bản in đậm của người trả lời cho biết chính xác điều ngược lại. – Kalko
Nếu bạn chỉ muốn đầu ra 5 yếu tố đầu tiên, bạn nên viế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);
}
?>
Bạn có thể sử dụng hàm array_slice, nhưng bạn có sử dụng các giá trị khác không? hoặc chỉ 5 người đầu tiên? bởi vì nếu bạn chỉ sử dụng 5 đầu tiên, bạn có thể sử dụng LIMIT trên SQL.
Một cách hướng đối tượng khác sẽ là cung cấp 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 x đầu tiên các mục từ một mảng.
số [0..x-1]
Những điều tuyệt vời về phương pháp này là nếu bạn yêu cầu cho các hạng 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]
Nhưng php không hỗ trợ dải ô. Bạn có chắc là bạn không nói về ruby hay gì đó như thế không? –
"Một cách hướng đối tượng hơn"? Câu trả lời này không liên quan gì đến lập trình hướng đối tượng. – Ducky
- 1. Trả lại một mảng chuỗi từ một hàm mà không khởi tạo mảng đầu tiên
- 2. Xóa các tham số x đầu tiên của một mảng
- 3. Lấy x mục đầu tiên từ một danh sách
- 4. jinja2 đầu tiên x mục trong cho ... nếu lặp
- 5. glob python chỉ trả lại kết quả đầu tiên
- 6. CasperJS getElementsByXPath chỉ trả lại phần tử đầu tiên
- 7. Trả lại trận đấu đầu tiên của Ruby regex
- 8. Chỉ mục danh sách Python đầu tiên lớn hơn x?
- 9. "bắt đầu trước mục tiêu đầu tiên. Dừng lại". lỗi
- 10. Xóa các dòng X đầu tiên khỏi một tệp PHP
- 11. OLEDB Không trả lại hàng đầu tiên của tệp excel
- 12. GROUP BY trả lại hồ sơ đầu tiên
- 13. Mảng đẩy làm chỉ mục đầu tiên PHP
- 14. Làm thế nào để trả lại kết quả đầu tiên từ XQuery
- 15. Trả lại các chỉ mục của một mảng phụ trong một mảng
- 16. Ruby Xóa chỉ mục đầu tiên của một mảng
- 17. C# logic để lấy ký tự đầu tiên không lặp lại (khác biệt) từ chuỗi
- 18. jQuery trả lại 5 từ đầu tiên của một chuỗi không có dấu phẩy
- 19. Lặp lại trên các phần tử n đầu tiên của một mảng
- 20. AngularJs đầu tiên trong mảng sau Lọc
- 21. xoá phần tử đầu tiên khỏi mảng
- 22. trả lại một mảng từ C đến Java với SWIG
- 23. Xóa các mức nhận dạng đầu tiên trong mảng
- 24. TWIG cách lấy vật phẩm đầu tiên từ mảng
- 25. Cách chọn mục đầu tiên trong JPopupMenu?
- 26. Đưa phần tử đầu tiên ra khỏi mảng
- 27. Chỉ giữ lại các phần tử N đầu tiên của một mảng trong PHP?
- 28. Việc lập chỉ mục mảng PLPGSQL bắt đầu từ 1?
- 29. Nhận mục đầu tiên của linkedhashmap
- 30. php array_search trả về 0 cho phần tử đầu tiên?
wtf với downvotes trong câu hỏi này? – SilentGhost
Tôi upvoted tất cả, vì mỗi câu trả lời là tốt. – Vili