Cuál es la mejor manera de lograr esto?
Cuál es la mejor manera de lograr esto?
Respuestas:
Utilice array_slice ()
Este es un ejemplo del manual de PHP: array_slice
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"
Solo hay un pequeño problema
Si los índices de la matriz son significativos para usted, recuerde que array_slice
restablecerá y reordenará los índices numéricos de la matriz. Necesita la preserve_keys
bandera establecida true
para evitar esto. (4to parámetro, disponible desde 5.0.2).
Ejemplo:
$output = array_slice($input, 2, 3, true);
Salida:
array([3]=>'c', [4]=>'d', [5]=>'e');
Puede usar array_slice como:
$sliced_array = array_slice($array,0,$N);
En el orden actual? Yo diría array_slice () . Como es una función incorporada, será más rápido que recorrer la matriz mientras realiza un seguimiento de un índice creciente hasta N.
array_slice () es lo mejor para probar, los siguientes son los ejemplos:
<?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));
?>
si desea obtener los primeros N elementos y también eliminarlos de la matriz, puede usar array_splice()
(tenga en cuenta la 'p' en "empalme"):
http://docs.php.net/manual/da/function.array-splice.php
úsalo así: $array_without_n_elements = array_splice($old_array, 0, N)