Desafio: Filtro de Itens Únicos
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy. Lição 68 de 68.
Desafio
FácilVocê receberá uma única entrada: uma string de itens separados por vírgulas que pode conter duplicatas.
A entrada será uma string neste formato: apple,banana,apple,orange,banana,grape,apple
Leia a string de entrada e divida-a em um array de itens. Use array_filter() com uma função de callback personalizada para remover itens duplicados, mantendo apenas a primeira ocorrência de cada item único.
Para fazer isso, crie uma função de callback que rastreie quais itens já foram vistos. O callback deve retornar true para itens encontrados pela primeira vez e false para duplicatas. Você pode usar uma variável fora do callback e capturá-la por referência com use (&$seen) para que as atualizações persistam entre as chamadas que o array_filter faz ao callback.
Após a filtragem, imprima cada item único em uma linha separada, na ordem em que apareceram pela primeira vez na entrada original.
Formato de entrada:
- Uma única linha contendo itens separados por vírgulas (exemplo:
apple,banana,apple,orange)
Saída esperada: Cada item único impresso em uma linha separada, na ordem de sua primeira aparição na entrada
Experimente você mesmo
<?php
// Ler a entrada
$input = trim(fgets(STDIN));
// Dividir a entrada em um array
$items = explode(',', $input);
// TODO: Escreva seu código abaixo
// Use array_filter() com uma função de callback personalizada para remover duplicatas
// Exibir cada item único em uma linha separada
?>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 Simples7Trabalhando com Datas e Horas
A Função 'date()'Unix Timestamps com 'time()'Introdução ao Objeto DateTimeFormatando Objetos DateTimeModificando Objetos DateTimeRecapitulação: Cálculos de Data10Desafios Finais
Desafio: Verificador de PalíndromosDesafio: Frequência de CaracteresDesafio: Total do Carrinho de ComprasDesafio: Filtro de Itens Únicos2Manipulaçõ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 LeaderboardPratique por conta própria: Compilador de PHP online