Claves con 'array_search'
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 18 de 68.
Mientras que in_array() te indica si un valor existe en un array, a veces necesitas saber exactamente dónde se encuentra ese valor. La función array_search() busca un valor específico en un array y devuelve su clave o índice correspondiente.
Así es como funciona:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // Salida: 2
?>La función toma dos parámetros: el valor que estás buscando y el array en el que buscar. Cuando se encuentra el valor, array_search() devuelve la clave (para arrays indexados, esta es la posición numérica que comienza desde 0).
Sin embargo, hay una distinción importante en lo que se devuelve. Si se encuentra el valor, obtienes la clave. Si no se encuentra el valor, la función devuelve false:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // Devuelve: 2
$notFound = array_search(100, $scores); // Devuelve: false
?>Esta función es particularmente útil cuando necesitas determinar la posición o el ranking de un elemento, como encontrar en qué lugar se encuentra un jugador en una tabla de clasificación o localizar el índice de un elemento específico para su posterior procesamiento.
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 dos entradas: un array de nombres de productos en formato JSON y el nombre de un producto a buscar. Lee ambas entradas, convierte la cadena JSON en un array, utiliza array_search() para encontrar la posición del producto en el array y muestra el resultado. Si se encuentra el producto, imprime su posición de índice. Si el producto no se encuentra, imprime "Product not found".
Formato de entrada: Dos líneas - la primera línea contiene un array JSON (ejemplo: ["laptop","mouse","keyboard","monitor"]), la segunda línea contiene el nombre del producto a buscar
Resultado esperado: Ya sea la posición de índice numérica del producto (comenzando desde 0) o el texto "Product not found" si el producto no existe en el array
Hoja de referencia
La función array_search() busca un valor específico en un array y devuelve su clave o índice correspondiente:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // Resultado: 2
?>La función toma dos parámetros: el valor que se busca y el array en el que se busca. Devuelve la clave si se encuentra, o false si no se encuentra:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // Devuelve: 2
$notFound = array_search(100, $scores); // Devuelve: false
?>Pruébalo tú mismo
<?php
// Leer la entrada del arreglo JSON
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);
// Leer el nombre del producto a buscar
$searchProduct = trim(fgets(STDIN));
// TODO: Escribe tu código a continuación
// Usa array_search() para encontrar la posición del producto
// Imprimir el resultado
echo $result;
?>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