Я создаю сайт электронной коммерции, в котором есть товары с несколькими атрибутами (размер, цвет и т. Д.), Поэтому у каждого атрибута также есть несколько значений (для размера это будет: маленький, средний, большой и т. Д.).)
У меня есть массив идентификаторов, представляющих атрибуты, например:
$attributes = [1,2,3];
Затем я хочу запросить в моей базе данных каждый из этих идентификаторов, чтобы получить значения th для этого атрибута и создатьмногомерный массив результатов, подобный этому:
array (size=3)
1 => size
0 => 'small'
1 => 'medium'
2 => 'large'
2 => colour
0 => 'red'
1 => 'green'
2 => 'blue'
3 => pattern
0 => 'spots'
1 => 'stripes'
2 => 'plain'
То, что я имею до сих пор, выглядит так:
$attribute_array = [];
foreach($attributes as $attribute_id){
$params = [$attribute_id];
$sql = "SELECT * FROM attributes WHERE attribute_id=?";
$stmt = DB::run($sql,$params);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$attribute_value = $row['attribute_value'];
//$attribute_array[$attribute_id] = $attribute_value; // this only takes the last value from the last row
//array_push($attribute_array[$attribute_id],$attribute_value); // this says that the first arg isn't an array
}
}
Любая помощь или предложения с этим будет принята с благодарностью.
В итоге я хочу получить все комбинации атрибутов для продукта (маленькие + красные + полосы, маленькие + зеленые + полосы, маленькие + синие + полосы и т. Д.).