Dapatkan elemen N pertama dari sebuah array?

207

Apa cara terbaik untuk mencapai ini?

GSto
sumber
7
jika Anda perlu menemukan fungsi untuk melakukan sesuatu dengan array pergi ke sini: php.net/manual/en/function.array.php dan lihat fungsinya.
Galen
21
daripada datang ke SO!?
Hrishikesh Choudhari

Jawaban:

360

Gunakan array_slice ()

Ini adalah contoh dari manual PHP: array_slice

$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

Hanya ada masalah kecil

Jika indeks array bermakna bagi Anda, ingatlah bahwa array_sliceakan mengatur ulang dan menyusun ulang indeks array numerik . Anda perlu preserve_keysmengatur bendera trueuntuk menghindari ini. (Parameter ke-4, tersedia sejak 5.0.2).

Contoh:

$output = array_slice($input, 2, 3, true);

Keluaran:

array([3]=>'c', [4]=>'d', [5]=>'e');
corbacho
sumber
29

Anda dapat menggunakan array_slice sebagai:

$sliced_array = array_slice($array,0,$N);
codaddict
sumber
12

Dalam urutan saat ini? Saya akan mengatakan array_slice () . Karena ini adalah fungsi bawaan, itu akan lebih cepat daripada mengulang melalui array sambil melacak kenaikan indeks sampai N.

Fanis Hatzidakis
sumber
4

array_slice () adalah hal terbaik untuk dicoba, berikut adalah contohnya:

<?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));
?>
Bintang
sumber
1

jika Anda ingin mendapatkan elemen N pertama dan juga menghapusnya dari array, Anda dapat menggunakan array_splice()(perhatikan 'p' dalam "splice"):

http://docs.php.net/manual/da/function.array-splice.php

gunakan seperti ini: $array_without_n_elements = array_splice($old_array, 0, N)

Alon Gouldman
sumber