Как я могу проверить, что $courseAreas
массив включает в себя по крайней мере «айршир» и «файф»?
Я пробовал следующий код, но он не работает:
$courseAreas = array('ayrshire', 'fife', 'cheshire', 'lanarkshire');
$includesAyrshireAndFife = (count(array_intersect(array('ayrshire', 'fife'), $courseAreas)) >= 2 ? true : false);
$courseAreas = array('ayrshire', 'fife', 'cheshire', 'lanarkshire');
$includesAyrshireAndFife = count(array_intersect(array('ayrshire', 'fife'), $courseAreas)) > 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);
Но ваш оригинал также, кажется, работает отлично … при каких обстоятельствах вы обнаруживаете, что он выходит из строя?
Ты можешь использовать in_array()
Увидеть :- http://www.w3schools.com/php/func_array_in_array.asp