Extraindo com 'array_slice'
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 16 de 68.
A função array_slice() permite extrair uma parte de um array sem modificar o array original. Diferente de funções como array_pop() ou array_shift() que alteram o array de origem, a array_slice() cria um novo array contendo apenas os elementos que você especificar.
A função recebe dois parâmetros principais: o offset (posição inicial) e o length (quantos elementos extrair):
<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree); // Saída: Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores); // Array original inalterado
?>O parâmetro offset informa ao PHP onde começar a extrair (0 significa o primeiro elemento), enquanto o parâmetro length especifica quantos elementos obter. Você também pode usar valores negativos para o offset para começar a contar a partir do final do array.
Esta função é particularmente útil quando você precisa trabalhar com um subconjunto de dados, como exibir apenas os primeiros itens de uma lista grande ou extrair um intervalo específico de elementos para processamento, tudo isso mantendo seus dados originais intactos.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Desafio
FácilVocê receberá três entradas: um array de preços de produtos em formato JSON, uma posição inicial (offset) e o número de itens a serem extraídos (length). Leia todas as três entradas, converta a string JSON em um array, use array_slice() para extrair a parte especificada do array e imprima a fatia extraída usando print_r().
Formato de entrada: Três linhas - a primeira linha contém um array JSON de números (exemplo: [29.99,15.50,42.00,8.75,33.25]), a segunda linha contém o offset (posição inicial), a terceira linha contém o length (número de elementos a serem extraídos)
Saída esperada: A parte extraída do array, exibida usando print_r()
Folha de consulta
A função array_slice() extrai uma parte de um array sem modificar o array original.
Sintaxe: array_slice($array, $offset, $length)
- offset: Posição inicial (0 = primeiro elemento)
- length: Número de elementos a extrair
- Use um offset negativo para começar do final do 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); // Array original inalterado
?>Experimente você mesmo
<?php
// Lê o array JSON de preços
$json_input = fgets(STDIN);
$prices = (array)json_decode($json_input, true);
// Lê o deslocamento (posição inicial)
$offset = intval(fgets(STDIN));
// Lê o comprimento (número de elementos a extrair)
$length = intval(fgets(STDIN));
// TODO: Escreva seu código abaixo para extrair a fatia e exibi-la
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Funções Avançadas
Funções AnônimasClosures e 'use'Arrow FunctionsFunções de CallbackUsando 'call_user_func'Funções VariáveisPassagem por ReferênciaFunções RecursivasRecapitulação: Mix de Funções4Arrays Multidimensionais
Criando um Array 2DAcessando Elementos de um Array 2DModificando Elementos de um Array 2DIterando com Loops AninhadosArrays Associativos 2DRecapitulação: Exercício de Grade Simples2Manipulações Avançadas de Arrays
Adicionando com 'array_push'Removendo com 'array_pop'Adicionando com 'array_unshift'Removendo com 'array_shift'Mesclando Arrays IndexadosMesclando Arrays AssociativosExtraindo com 'array_slice'Valores com 'in_array'Chaves com 'array_search'Recapitulação: Exercício de Playlist3Ordenação de Arrays
Ordenar Arrays Indexados (Crescente)Ordenar Arrays Indexados (Decrescente)Ordenar Arrays Associativos por ValorOrdenar Arrays Associativos por ChaveOrdenação por Ordem NaturalOrdenação Personalizada com 'usort'Recapitulação: Ordenação de Leaderboard