อะไรคือวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้?
อะไรคือวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้?
คำตอบ:
ใช้array_slice ()
นี่คือตัวอย่างจากคู่มือ PHP: array_slice
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"
มีเพียงปัญหาเล็ก ๆ
หากดัชนีอาร์เรย์มีความหมายสำหรับคุณโปรดจำไว้ว่าarray_slice
จะรีเซ็ตและเรียงลำดับดัชนีอาร์เรย์ตัวเลขใหม่ คุณต้องpreserve_keys
ตั้งค่าสถานะtrue
เพื่อหลีกเลี่ยงปัญหานี้ (พารามิเตอร์ที่ 4 มีให้ตั้งแต่ 5.0.2)
ตัวอย่าง:
$output = array_slice($input, 2, 3, true);
เอาท์พุท:
array([3]=>'c', [4]=>'d', [5]=>'e');
คุณสามารถใช้array_sliceเป็น:
$sliced_array = array_slice($array,0,$N);
ในการสั่งซื้อปัจจุบัน? ผมว่าarray_slice () เนื่องจากมันเป็นฟังก์ชั่นในตัวมันจะเร็วกว่าการวนลูปผ่านอาร์เรย์ในขณะที่ติดตามดัชนีที่เพิ่มขึ้นจนถึง N
array_slice ()เป็นวิธีที่ดีที่สุดที่จะลองต่อไปนี้เป็นตัวอย่าง:
<?php
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // returns "c", "d", and "e"
$output = array_slice($input, -2, 1); // returns "d"
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"
// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>
หากคุณต้องการรับองค์ประกอบ N แรกและลบออกจากอาร์เรย์คุณสามารถใช้array_splice()
(หมายเหตุ 'p' ใน "splice"):
http://docs.php.net/manual/da/function.array-splice.php
ใช้มันอย่างนั้น: $array_without_n_elements = array_splice($old_array, 0, N)