Check if Key Exists
Parte da seção Fundamentos do Journey de PHP da Coddy — lição 45 de 71.
Quando você trabalha com arrays associativos, muitas vezes precisa verificar se uma chave específica existe antes de tentar acessar seu valor. Tentar acessar uma chave inexistente pode causar erros, por isso o PHP fornece a função array_key_exists() para verificar com segurança primeiro.
<?php
$person = [
"name" => "Alice",
"age" => 25
];
if (array_key_exists("name", $person)) {
echo "Name exists!";
}
if (array_key_exists("city", $person)) {
echo "City exists!";
} else {
echo "City not found";
}
?>A função recebe dois argumentos: a chave que você está procurando e o array para pesquisar. Ela retorna true se a chave existir, e false caso contrário. Isso a torna perfeita para uso em declarações condicionais.
Esta verificação é especialmente útil ao lidar com dados que podem estar incompletos — como entrada do usuário ou dados de fontes externas — onde você não pode garantir que todas as chaves esperadas estejam presentes.
Desafio
FácilLeia uma linha de entrada contendo um objeto JSON representando dados do usuário (ex.: {"username": "john_doe", "email": "john@example.com", "age": 28}).
Então leia mais duas entradas:
- Uma string
key1- a primeira chave a verificar - Uma string
key2- a segunda chave a verificar
Crie um array associativo a partir da entrada JSON, então:
- Verifique se
key1existe no array. Se existir, imprima o valor associado a ele. Caso contrário, imprimaKey not found. - Verifique se
key2existe no array. Se existir, imprima o valor associado a ele. Caso contrário, imprimaKey not found.
Imprima cada resultado em uma linha separada.
Exemplo:
Se as entradas forem {"username": "john_doe", "email": "john@example.com", "age": 28}, username e phone, a saída deve ser:
john_doe
Key not foundSe as entradas forem {"title": "Manager", "department": "Sales"}, salary e department, a saída deve ser:
Key not found
SalesFolha de consulta
Use array_key_exists() para verificar se uma chave específica existe em um array associativo antes de acessá-la:
<?php
$person = [
"name" => "Alice",
"age" => 25
];
if (array_key_exists("name", $person)) {
echo "Name exists!";
}
if (array_key_exists("city", $person)) {
echo "City exists!";
} else {
echo "City not found";
}
?>A função recebe dois argumentos: a chave a ser pesquisada e o array. Ela retorna true se a chave existir, false caso contrário.
Experimente você mesmo
<?php
// Lê a entrada JSON
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// Converte JSON para array associativo
$userData = (array)json_decode($jsonInput, true);
// TODO: Escreva seu código abaixo
// Verifique se key1 existe e imprima o valor ou "Key not found"
// Verifique se key2 existe e imprima o valor ou "Key not found"
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators