Почему это условие не истинно?
if (in_array(array('3','4','5'), $virtuemart_shoppergroup_ids, false))
И это:
if (in_array(array(3,4,5), $virtuemart_shoppergroup_ids, false))
Ну и это:
if (in_array(array(3,4,5), $virtuemart_shoppergroup_ids))
Если $virtuemart_shoppergroup_ids содержит в себе:
Array
(
[0] => 3
)
Потому что 1ый аргумент - это то, что ищем, а 2ой - в каком массиве ищем. Читайте мануал
P.S. третий параметр false бесполезен, так как он по умолчанию установлен в false
Update:
in_array вернет true, только если первый аргумент является элементом 2ого аргумента
$simpleHaystack = [ 1, 2, 3 ]; // одномерный массив
$multiHaystack = [ [ 1 , 2 ] , 3]; // многомерный массив
$needle = [ 1, 2 ];
var_dump( in_array( $needle, $simpleHaystack ) ); // false, потому что в массиве [1,2,3] нет элемента [1,2]
var_dump( in_array( $needle, $multiHaystack ) ); // true, потому что в массиве [[1,2],3] есть элемент [1,2]
Вот это работает.
$haystack = array(array(3,4,5), $virtuemart_shoppergroup_ids);
if (in_array(array(3,4,5), $haystack)) {
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости