Validar si un dato existe en un rango de valores en PHP

Validar si un dato existe en un rango de valores en PHP

El problema Al momento de hacer validaciones en nuestros sistemas, podemos verificar si un dato existe en un rango de valores en PHP. Si se necesi

Debug con y sin acceso a archivos de sistema en PHP
Instalar y configurar Aptana Studio 3 (linux)
Debug en apache sin modificar archivo conf
Formularios en PHP
Desarrollo web, servidor local y remoto

El problema

Al momento de hacer validaciones en nuestros sistemas, podemos verificar si un dato existe en un rango de valores en PHP.

Si se necesita saber si una variable tiene X o Y valor, a veces hacemos la validación var == 1 || var == 2 || var == “A” || var == “3”.

Es decir, que por cada dato, debemos verificar si la variable tiene ese valor, o, si la misma variable tiene el otro valor.

 

PHP

Para verificar si un dato existe en un rango de valores en PHP, usamos la siguiente función :

function val_inter($dato, $rango, $separador){
return (in_array($dato, explode($separador, $rango))) ? true : false;
}

¿Cómo se usa?

Suponiendo que tenemos una variable llamada valor, y que ésta, contiene un 5.

$valor = "5";
if (val_inter($valor, "1,2,3,4,5", ",");
echo "Si está en el rango de valores";
else
echo "No está en el rango de valores";

 

Explicación

Por ejemplo, si queremos saber si la variable A tiene el valor 1, 2, 3, 4, ó 5:


val_inter($A, "1,2,3,4,5", ",");

¿Qué significa esto? Se reciben 3 parámetros:
1: La variable que deseamos validar.
2: Los valores posibles separados.
3: El valor que utilizamos para separar.

¿Para qué colocamos el separador?

Porque podríamos separarlo de otra manera:

val_inter($A, "1-2-3-4-5", "-");

Como en la anterior, pero separándolo por guiones.

val_inter($A, ",_._:_;", "_");

Aquí podemos saber si se tiene un coma, punto, dos puntos o punto y coma, y lo separamos con un guión bajo.

Ahora, una vez que le enviamos los datos a validar, explode($separador, $rango).

Primero los explota (explode), es decir, crea un vector con los datos enviados, separados por el carácter que nosotros le indicamos.

Por ejemplo para

val_inter($A, "A,B,C,D,E", ",")

Se crearía el siguiente vector:

01234
ABCDE

Y después se busca dentro del vector el valor que deseamos validar,


in_array($dato, explode($separador, $rango)).

Si lo encuentra, nos devuelve un 1, así que hacemos un if compacto.


(in_array($dato, explode($separador, $rango))) ? true : false

Así qué si el valor que deseamos validar, sí se encuentra dentro del rango de valores, entonces nos devuelve true, de lo contrario, nos devuelve false.

Por lo tanto validamos un valor, en un rango de valores, sin límite, todo en una sola línea.

Ejemplo

$dato = 1;
if (val_inter($dato, "1,2,3", ","))
    echo "Existe";
else
    echo "No existe";
//Resultado Existe

$dato = "Naranja";
if (val_inter($dato, "Manzana, Pera, Uva", ","))
    echo "Existe";
else
    echo "No existe";
//Resultado No Existe
Aunque si deseamos tener el código mas compacto, se puede hacer así:
$dato = "Naranja";
echo (val_inter($dato, "Manzana, Pera, Uva", ",")) ? "Existe" : "No existe";
//Resultado No existe

COMMENTS

WORDPRESS: 0