¿Cómo verifico varios valores, como:
$arg = array('foo','bar');
if(in_array('foo','bar',$arg))
Ese es un ejemplo para que lo entiendas un poco mejor, sé que no funcionará.
Interseccione los objetivos con el pajar y asegúrese de que la intersección sea exactamente igual a los objetivos:
$haystack = array(...);
$target = array('foo', 'bar');
if(count(array_intersect($haystack, $target)) == count($target)){
// all of $target is in $haystack
}
Tenga en cuenta que solo necesita verificar que el tamaño de la intersección resultante sea del mismo tamaño que la matriz de valores objetivo para decir que $haystack
es un superconjunto de $target
.
Para verificar que al menos un valor en $target
también está adentro $haystack
, puede hacer esta verificación:
if(count(array_intersect($haystack, $target)) > 0){
// at least one of $target is in $haystack
}
Como desarrollador, probablemente debería comenzar a aprender las operaciones de conjuntos (diferencia, unión, intersección). Puede imaginar su matriz como un "conjunto" y las claves que está buscando para el otro.
Compruebe si existen TODAS las agujas
Compruebe si existe ALGUNA de las agujas
fuente
fuente
Salir de la respuesta de @Rok Kralj (mejor en mi opinión) para verificar si existe alguna de las agujas en el pajar, puede usar en
(bool)
lugar de lo!!
que a veces puede ser confuso durante la revisión del código.https://glot.io/snippets/f7dhw4kmju
fuente
En mi humilde opinión, la solución de Mark Elliot es la mejor para este problema. Si necesita realizar operaciones de comparación más complejas entre elementos de la matriz Y está en PHP 5.3, también puede pensar en algo como lo siguiente:
Esto se basa en un cierre; La función de comparación puede volverse mucho más poderosa. ¡Buena suerte!
fuente
array_intersect () devuelve una matriz que contiene todos los valores de matriz1 que están presentes en todos los argumentos. Tenga en cuenta que las claves se conservan.
Devuelve una matriz que contiene todos los valores de matriz1 cuyos valores existen en todos los parámetros.
vacío (): determina si una variable está vacía
Devuelve FALSE si var existe y tiene un valor distinto de cero y no vacío. De lo contrario, devuelve TRUE.
fuente