Jaki jest najlepszy sposób na osiągnięcie tego?
Jaki jest najlepszy sposób na osiągnięcie tego?
Odpowiedzi:
Użyj array_slice ()
To jest przykład z podręcznika PHP: array_slice
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"
Jest tylko mały problem
Jeśli indeksy tablic mają dla Ciebie znaczenie, pamiętaj, że array_slice
zresetują i uporządkują indeksy tablic numerycznych . Potrzebujesz preserve_keys
flagi, true
aby tego uniknąć. (Czwarty parametr, dostępny od 5.0.2).
Przykład:
$output = array_slice($input, 2, 3, true);
Wynik:
array([3]=>'c', [4]=>'d', [5]=>'e');
Możesz użyć array_slice jako:
$sliced_array = array_slice($array,0,$N);
W bieżącej kolejności? Powiedziałbym array_slice () . Ponieważ jest to funkcja wbudowana, będzie on szybszy niż zapętlanie tablicy, jednocześnie śledząc indeks rosnący aż do N.
array_slice () najlepiej wypróbować, oto przykłady:
<?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));
?>
jeśli chcesz uzyskać pierwsze N elementów, a także usunąć je z tablicy, możesz użyć array_splice()
(zwróć uwagę na „p” w „splice”):
http://docs.php.net/manual/da/function.array-splice.php
użyj go w ten sposób: $array_without_n_elements = array_splice($old_array, 0, N)