Вы можете получить активные продукты (идентификатор и имя) для каждого тега, выполнив следующие действия:
$tag = new Tag(null, "tag", $idlang);
$products = $tag->getProducts();
Конструктор тегов также Таким образом, ваш код может выглядеть примерно так:
$context = \Context::getContext();
$idlang = $context->language->id;
$tags = ['madcow', 'crazydog', 'happyant'];
$products = [];
foreach($tags as $t){
$tag = new Tag(null, $t, $idlang);
if($tag != null){
$tag_products = $tag->getProducts();
foreach($tag_products as $tg)
$products[$tg['id_product']] = $tg['name'];
}
}
РЕДАКТИРОВАТЬ: с учетом комментариев, возможно, было бы лучше получить все теги
$context = \Context::getContext();
$idlang = $context->language->id;
$tags = ['madcow', 'crazydog', 'happyant'];
$products = [];
foreach($tags as $t){
$tag = new Tag(null, $t, $idlang);
if($tag != null){
$tag_products = $tag->getProducts();
foreach($tag_products as $tg) {
if(!isset($products[$tg['id_product']])) {
$products[$tg['id_product']] = [];
}
$products[$tg['id_product']][] = $tg['name'];
}
}
}
Затем, если вы хотите отсортировать по количеству найденных тегов, вы можете сделать что-то вроде:
usort($product, function($a, $b) { return count($b) - count($a); });
Отказ от ответственности: не тестировалось, пожалуйста, дайте мне знать, если вы обнаружите какую-либо ошибку.
person
sadlyblue
schedule
31.01.2018