Убедитесь, что массив содержит хотя бы набор значений в переполнении стека

Как я могу проверить, что $courseAreas массив включает в себя по крайней мере «айршир» и «файф»?

Я пробовал следующий код, но он не работает:

$courseAreas = array('ayrshire', 'fife', 'cheshire', 'lanarkshire');
$includesAyrshireAndFife = (count(array_intersect(array('ayrshire', 'fife'), $courseAreas)) >= 2 ? true : false);

0

Решение

$courseAreas = array('ayrshire', 'fife', 'cheshire', 'lanarkshire');
$includesAyrshireAndFife = count(array_intersect(array('ayrshire', 'fife'), $courseAreas)) > 1;

Вам даже не нужен тенарный оператор, потому что с> это уже логическое выражение.

редактировать:

Я заметил, что ваш код тоже работает. Я просто сократил это.

1

Другие решения

Попробуйте положить ? true : false вне скобок

$courseAreas = array('ayrshire', 'fife', 'cheshire', 'lanarkshire');
$includesAyrshireAndFife = (count(array_intersect(array('ayrshire', 'fife'), $courseAreas)) >= 2) ? true : false;
var_dump($includesAyrshireAndFife);

$courseAreas = array('ayrshire', 'stirlingshire', 'cheshire', 'lanarkshire');
$includesAyrshireAndFife = (count(array_intersect(array('ayrshire', 'fife'), $courseAreas)) >= 2) ? true : false;
var_dump($includesAyrshireAndFife);

Кажется работать

Но ваш оригинал также, кажется, работает отлично … при каких обстоятельствах вы обнаруживаете, что он выходит из строя?

2

Ты можешь использовать in_array()

Увидеть :- http://www.w3schools.com/php/func_array_in_array.asp

0
По вопросам рекламы [email protected]