PHP – Array – Devolver posición valor
Función que devuelve la posición numérica que ocupa una valor en un array. Si no lo encuentra devuelve el valor -1. La comparación se realiza sin tener en cuenta las mayúsculas y/o minúsculas.
Se utiliza la función array_search para buscar.
/** * Class HelperArray */ abstract class HelperArray { /** * Devuelve la posición que ocupa un valor * de un array o -1 si no existe. * Si algún valor esta vacío o no es un array, * este se convierte a un array. * * @param array $arr * @param mixed $value * * @return int */ public static function indexOfValue( $arr, $value ) { $arr = HelperConvert::toArray( $arr ); if ( count( $arr ) == 0 ) { return -1; } // Como la función es sensitiva a mayúsculas y minúsculas // hacemos una copia del array poniendo las claves en minúsculas // la comparación se hace en minúsculas. $array_copy = array_map( function ( $val ) { return HelperString::toLower( $val ); }, array_values( $arr ) ); $pos_value = array_search( $value, $array_copy ); if ( false === $pos_value ) { return -1; } return $pos_value; } }
Funciones relacionadas:
- HelperConvert::toArray :Convertir cualquier valor a un array
- HelperString::toLower : Convertir un texto a minúsculas con acentos