รับองค์ประกอบ N แรกของอาร์เรย์หรือไม่


207

อะไรคือวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้?


7
หากคุณต้องการหาฟังก์ชั่นในการทำบางสิ่งบางอย่างด้วยอาเรย์ไปที่นี่: php.net/manual/en/function.array.phpและดูฟังก์ชั่นต่างๆ
Galen

21
แทนที่จะมาที่ SO!?
Hrishikesh Choudhari

คำตอบ:


359

ใช้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');


12

ในการสั่งซื้อปัจจุบัน? ผมว่าarray_slice () เนื่องจากมันเป็นฟังก์ชั่นในตัวมันจะเร็วกว่าการวนลูปผ่านอาร์เรย์ในขณะที่ติดตามดัชนีที่เพิ่มขึ้นจนถึง N


4

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));
?>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.