Как проверить наличие нескольких значений, например:
$arg = array('foo','bar');
if(in_array('foo','bar',$arg))
Это пример, чтобы вы понимали немного лучше, я знаю, что это не сработает.
Пересеките цели стогом сена и убедитесь, что пересечение точно совпадает с целями:
$haystack = array(...);
$target = array('foo', 'bar');
if(count(array_intersect($haystack, $target)) == count($target)){
// all of $target is in $haystack
}
Обратите внимание, что вам нужно только убедиться, что размер результирующего пересечения совпадает с размером массива целевых значений, чтобы сказать, что $haystack
это надмножество $target
.
Чтобы убедиться, что хотя бы одно значение $target
также присутствует $haystack
, вы можете выполнить эту проверку:
if(count(array_intersect($haystack, $target)) > 0){
// at least one of $target is in $haystack
}
Как разработчику вам, вероятно, следует начать изучение операций над множеством (разность, объединение, пересечение). Вы можете представить свой массив как один «набор», а ключи, которые вы ищете, - другой.
Проверьте, ВСЕ ли иглы существуют
Проверьте, существует ли ЛЮБАЯ из игл
источник
источник
Отказ от ответа @Rok Kralj (лучший IMO), чтобы проверить, существует ли какая-либо из иголок в стоге сена, которую вы можете использовать
(bool)
вместо этого,!!
что иногда может сбивать с толку во время проверки кода.https://glot.io/snippets/f7dhw4kmju
источник
IMHO Лучшее решение Марка Эллиота для этой проблемы. Если вам нужно выполнить более сложные операции сравнения между элементами массива, И вы используете PHP 5.3, вы также можете подумать о чем-то вроде следующего:
Это зависит от закрытия; функция сравнения может стать намного более мощной. Удачи!
источник
array_intersect () возвращает массив, содержащий все значения array1, которые присутствуют во всех аргументах. Обратите внимание, что ключи сохранены.
Возвращает массив, содержащий все значения в array1, значения которых существуют во всех параметрах.
пустой () - определяет, пуста ли переменная
Возвращает FALSE, если var существует и имеет непустое ненулевое значение. В противном случае возвращает ИСТИНА.
источник