@viktor_qq

Red Bean PHP — Связи, как вывести уникальные значения?

Доброго дня!

Изучаю PHP+RedBean PHP и столкнулся с проблемой вывода данных. Нужно вывести из таблицы связей все параметры и значения (в таблицу связей записаны ID параметра, ID значения и ID продукта.

Нужно так:
Ткань: хлопок, шелк

Получается так:
Ткань: Хлопок
Ткань: Шелк

Вывожу вот так:
$ad = new  Ads();
        $ad = $ad->getAd(111);
        foreach ($ad->ownBindsList as $bind){
            echo $bind->parametrs->name . "\n";
            echo $bind->values->name . "\n";
        }


Вопрос заключается в том, как вывести все значения параметра не дублируя имя параметра?
Понимаю как это сделать через запросы к базе в цикле, но ведь это не хорошо.
Наверняка есть более логичное и правильное решение, буду благодарен за помощь!

Структура БД
5e39207174a33311629083.png
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
@genteelknight
Fullstack web developer
Перед выводом сгруппируй все значения по свойству в отдельный массив и выводи уже их. Как-то так:

<?php

$ad = new  Ads();
$ad = $ad->getAd(111);

$parameters = [];

foreach ($ad->ownBindsList as $bind) {
	if (!isset($parameters[$bind->parametrs->name])) {
		$parameters[$bind->parametrs->name] = [];
	}

	$parameters[$bind->parametrs->name][] = $bind->values->name;
}

foreach ($parameters as $key => $values) {
	echo $key . ': ' . implode(', ', $values) . PHP_EOL;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы