Devolver la posición que ocupa un valor en un array

Código PHP

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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/**
* 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;
}
}
/** * 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; } }
/**
 * 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: