Chaves com 'array_search'
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 18 de 68.
Enquanto o in_array() informa se um valor existe em um array, às vezes você precisa saber exatamente onde esse valor está localizado. A função array_search() encontra um valor específico em um array e retorna sua chave ou índice correspondente.
Veja como funciona:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // Saída: 2
?>A função recebe dois parâmetros: o valor que você está procurando e o array no qual pesquisar. Quando o valor é encontrado, array_search() retorna a chave (para arrays indexados, esta é a posição numérica começando em 0).
No entanto, há uma distinção importante no que é retornado. Se o valor for encontrado, você recebe a chave. Se o valor não for encontrado, a função retorna false:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // Retorna: 2
$notFound = array_search(100, $scores); // Retorna: false
?>Esta função é particularmente útil quando você precisa determinar a posição ou a classificação de um item, como encontrar a posição de um jogador em um ranking ou localizar o índice de um elemento específico para processamento posterior.
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á duas entradas: um array de nomes de produtos em formato JSON e um nome de produto para pesquisar. Leia ambas as entradas, converta a string JSON em um array, use array_search() para encontrar a posição do produto no array e imprima o resultado. Se o produto for encontrado, imprima sua posição de índice. Se o produto não for encontrado, imprima "Product not found".
Formato de entrada: Duas linhas - a primeira linha contém um array JSON (exemplo: ["laptop","mouse","keyboard","monitor"]), a segunda linha contém o nome do produto a ser pesquisado
Saída esperada: Ou a posição de índice numérica do produto (começando em 0) ou o texto "Product not found" se o produto não existir no array
Folha de consulta
A função array_search() encontra um valor específico em um array e retorna sua chave ou índice correspondente:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // Outputs: 2
?>A função recebe dois parâmetros: o valor que você está procurando e o array no qual pesquisar. Ela retorna a chave se for encontrada, ou false se não for encontrada:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // Returns: 2
$notFound = array_search(100, $scores); // Returns: false
?>Experimente você mesmo
<?php
// Lê a entrada do array JSON
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);
// Lê o nome do produto a ser pesquisado
$searchProduct = trim(fgets(STDIN));
// TODO: Escreva seu código abaixo
// Use array_search() para encontrar a posição do produto
// Exibe o resultado
echo $result;
?>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