getKeyAsc obtener el valor de un indice en un Array sin caseSensitive
July 27th, 2010 by pako received No Comments »Aquí les dejo una pequeña función que se me ocurio formar a partir de un twitt del buen @danielniquet quien buscaba una forma de recuperar un elemento de un array asociativo sin que afectara el case sensitive de PHP, de forma nativa al parecer PHP no cuenta con una función que haga esto ya que digamos por “políticas” de php los keys de los arreglos asociativos son evaluados con case sensitive, por lo tal si en un array tengo el key “Mensaje” y trato de recuperar con $arr['mensaje'] no me retornara el valor ya que tiene que ser escrito el key exactamente igual $arr['Mensaje'], getKeyAsc en base solo hace posible recuperar el valor de un key sin que nos afecte esto, cabe destacar que lo que se hace es buscar comparando los key y en cuanto se encuentre el primer key que pasado a minúsculas sea igual al segundo parámetro que seria el key buscado de igual se pasa a minúscula cuando sean iguales se retorna el valor esto puede generar un error si tenemos los indices “mensaje” y “Mensaje” la función retornaría el primero que encontrara.
/*
FcoDiaz
www.devtics.com.mx
27/jul/2010
*/
function getKeyAsc($arr,$strIndex,$caseSesitive=false){
if($caseSesitive)return $arr[$strIndex];
foreach($arr as $i => $v)
if(strtolower($i)==strtolower($strIndex))return $v;
return null;
}
Ejemplos
$arr=array("frutA"=>"naraja","noMbre"=>"pako","musiC"=>"rock");
echo "->{$arr["music"]}n";
echo "->{$arr["FRUTa"]}n";
echo "->{$arr["frutA"]}n";
echo "->".getKeyAsc($arr,"music")."n";
echo "->".getKeyAsc($arr,"FRUTa")."n";
Out:
->
->
->naraja
->rock
->naraja







