Extraer con 'array_slice'
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 16 de 68.
La función array_slice() te permite extraer una porción de un array sin modificar el array original. A diferencia de funciones como array_pop() o array_shift() que cambian el array de origen, array_slice() crea un nuevo array que contiene solo los elementos que especifiques.
La función toma dos parámetros principales: el offset (posición inicial) y la length (cuántos elementos extraer):
<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree); // Salida: Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores); // El array original permanece sin cambios
?>El parámetro offset le indica a PHP dónde comenzar la extracción (0 significa el primer elemento), mientras que el parámetro length especifica cuántos elementos tomar. También puedes usar valores negativos para el offset para comenzar a contar desde el final del array.
Esta función es particularmente útil cuando necesitas trabajar con un subconjunto de datos, como mostrar solo los primeros elementos de una lista grande o extraer un rango específico de elementos para su procesamiento, todo esto mientras mantienes tus datos originales intactos.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Desafío
FácilRecibirás tres entradas: un array de precios de productos en formato JSON, una posición inicial (offset) y el número de elementos a extraer (length). Lee las tres entradas, convierte la cadena JSON en un array, utiliza array_slice() para extraer la porción especificada del array y muestra la porción extraída utilizando print_r().
Formato de entrada: Tres líneas: la primera línea contiene un array JSON de números (ejemplo: [29.99,15.50,42.00,8.75,33.25]), la segunda línea contiene el offset (posición inicial) y la tercera línea contiene la longitud (número de elementos a extraer).
Resultado esperado: La porción extraída del array, mostrada utilizando print_r()
Hoja de referencia
La función array_slice() extrae una porción de un array sin modificar el array original.
Sintaxis: array_slice($array, $offset, $length)
- offset: Posición inicial (0 = primer elemento)
- length: Número de elementos a extraer
- Use un offset negativo para comenzar desde el final del array
<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree); // Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores); // El array original permanece sin cambios
?>Pruébalo tú mismo
<?php
// Leer el array JSON de precios
$json_input = fgets(STDIN);
$prices = (array)json_decode($json_input, true);
// Leer el desplazamiento (posición inicial)
$offset = intval(fgets(STDIN));
// Leer la longitud (número de elementos a extraer)
$length = intval(fgets(STDIN));
// TODO: Escribe tu código a continuación para extraer la porción y mostrarla
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Funciones avanzadas
Funciones anónimasClosures y 'use'Funciones de flechaFunciones callbackUso de 'call_user_func'Funciones variablesPaso por referenciaFunciones recursivasResumen: Miscelánea de funciones4Arreglos multidimensionales
Crear un arreglo 2DAcceder a elementos de un arreglo 2DModificar elementos de un arreglo 2DIterar con bucles anidadosArreglos asociativos 2DResumen: Ejercicio de cuadrícula simple2Manipulación avanzada de arrays
Agregar con 'array_push'Eliminar con 'array_pop'Agregar con 'array_unshift'Eliminar con 'array_shift'Fusionar arrays indexadosFusionar arrays asociativosExtraer con 'array_slice'Valores con 'in_array'Claves con 'array_search'Resumen: Ejercicio de Playlist3Ordenar Arrays
Ordenar arrays indexados de forma ascendenteOrdenar arrays indexados de forma descendenteOrdenar arrays asociativos por valorOrdenar arrays asociativos por claveOrdenación por orden naturalOrdenación personalizada con 'usort'Resumen: Ordenar tablas de clasificación