Hoy me vi en el aprieto de hacer una búsqueda de la clave de un array y retornar el valor.
El problema viene generado porque la clave puede estar tanto en mayúsculas como en minúsculas y eso puede afectar negativamente en la búsqueda de la clave probocando un resultado FALSE incorrecto.
Ejemplo: si busco A pero en el array existe a, dará false cuando en realidad es true.
Para hacer la búsqueda opté por una función quizá poco conocida: array_change_key_case()
Funciona de la misma manera que strtolower() y strtoupper() pero en las claves del array.
Un ejemplo de la función:
como se puede apreciar las keys ahora son en mínusculas.
Tenemos las dos posibilidades: CASE_LOWER y CASE_UPPER
Ahora podemos hacer búsquedas en arrays sin miedo a dar falsos negativos.
El problema viene generado porque la clave puede estar tanto en mayúsculas como en minúsculas y eso puede afectar negativamente en la búsqueda de la clave probocando un resultado FALSE incorrecto.
Ejemplo: si busco A pero en el array existe a, dará false cuando en realidad es true.
Para hacer la búsqueda opté por una función quizá poco conocida: array_change_key_case()
Funciona de la misma manera que strtolower() y strtoupper() pero en las claves del array.
Un ejemplo de la función:
<?php
$var = array("Una" => 1, "dOs" => 2);
var_dump( array_change_key_case($var,CASE_LOWER));
// Salida: array(2) { ["una"]=> int(1) ["dos"]=> int(2) }
?>
como se puede apreciar las keys ahora son en mínusculas.
Tenemos las dos posibilidades: CASE_LOWER y CASE_UPPER
Ahora podemos hacer búsquedas en arrays sin miedo a dar falsos negativos.
Publicar un comentario