Trong khi bạn có thể tạo mảng mong muốn trong một vòng lặp, tôi muốn thực hiện hai truy vấn. Trước tiên, hãy tìm nạp tất cả các thương hiệu vào một mảng và thêm một mảng sản phẩm trống vào mọi thương hiệu. Sau đó, tìm nạp tất cả các sản phẩm và gán chúng cho thương hiệu có liên quan.
Vì tôi không biết bạn đang sử dụng thư viện DB nào, đây là một số loại mã giả:
$data = [];
$brandResult = $db->query("SELECT id, name FROM tbl_brand");
while ($row = $brandResult->fetchObject()) {
$row->product_names = [];
$data[$row->id] = $row;
}
$productResult = $db->query("SELECT id, brand_id, p_name FROM tbl_products");
while ($row = $productResult->fetchObject()) {
$data[$row->brand_id][$row->id] = $row->p_name;
}