Обработка массива php mysql

277
18 мая 2017, 13:01
array(3) {
  [0]=> array(21) {
    ["id"]=>
    string(1) "7"
    ["bid_number"]=>
    string(5) "18564"
    ["cat"]=>
    string(3) "439"
    ["subcat"]=>
    string(3) "440"
    ["type"]=>
    string(3) "447"
    ["subtype"]=>
    string(0) ""
    ["product"]=>
    string(27) "Красный кирпич"
    ["quantity"]=>
    string(3) "100"
    ["cost"]=>
    string(1) "3"
    ["percent"]=>
    string(1) "3"
    ["bid_id"]=>
    string(1) "4"
    ["name"]=>
    string(30) "Тестовая заявка "
    ["delay"]=>
    string(2) "15"
    ["invoice"]=>
    string(10) "2147483647"
    ["project"]=>
    string(29) "Тестовый проект"
    ["date"]=>
    string(10) "2017-05-15"
    ["comment"]=>
    string(25) "Новый коммент"
    ["delivery"]=>
    string(29) "Санкт-Петербург"
    ["region"]=>
    string(3) "yes"
    ["adress"]=>
    string(0) ""
    ["user_id"]=>
    string(1) "0"
  }
  [1]=> array(21) {
    ["id"]=>
    string(1) "8"
    ["bid_number"]=>
    string(5) "18564"
    ["cat"]=>
    string(3) "439"
    ["subcat"]=>
    string(3) "440"
    ["type"]=>
    string(3) "447"
    ["subtype"]=>
    string(0) ""
    ["product"]=>
    string(23) "Белый кирпич"
    ["quantity"]=>
    string(2) "50"
    ["cost"]=>
    string(1) "3"
    ["percent"]=>
    string(1) "1"
    ["bid_id"]=>
    string(1) "4"
    ["name"]=>
    string(30) "Тестовая заявка "
    ["delay"]=>
    string(2) "15"
    ["invoice"]=>
    string(10) "2147483647"
    ["project"]=>
    string(29) "Тестовый проект"
    ["date"]=>
    string(10) "2017-05-15"
    ["comment"]=>
    string(25) "Новый коммент"
    ["delivery"]=>
    string(29) "Санкт-Петербург"
    ["region"]=>
    string(3) "yes"
    ["adress"]=>
    string(0) ""
    ["user_id"]=>
    string(1) "0"
  }
  [2]=> array(21) {
    ["id"]=>
    string(1) "9"
    ["bid_number"]=>
    string(5) "11564"
    ["cat"]=>
    string(3) "439"
    ["subcat"]=>
    string(3) "440"
    ["type"]=>
    string(3) "447"
    ["subtype"]=>
    string(0) ""
    ["product"]=>
    string(23) "Белый кирпич"
    ["quantity"]=>
    string(2) "50"
    ["cost"]=>
    string(1) "3"
    ["percent"]=>
    string(1) "1"
    ["bid_id"]=>
    string(1) "5"
    ["name"]=>
    string(31) "Тестовая заявка 2"
    ["delay"]=>
    string(2) "15"
    ["invoice"]=>
    string(10) "2147483647"
    ["project"]=>
    string(29) "Тестовый проект"
    ["date"]=>
    string(10) "2017-05-15"
    ["comment"]=>
    string(25) "Новый коммент"
    ["delivery"]=>
    string(29) "Санкт-Петербург"
    ["region"]=>
    string(3) "yes"
    ["adress"]=>
    string(0) ""
    ["user_id"]=>
    string(1) "0"
  }
}

Нужно вывести сгруппировав по bid_number:

Заявка номер 18564 
Кирпич Красный 
Белый Кирпич
Заявка номер 11564
Белый кирпич 

Из базы выборка таким кодом :

$sth = $this->db->prepare('SELECT *
FROM bids_product
LEFT JOIN bids
ON ( bids.bid_number = bids_product.bid_number )');
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
return $data;
Answer 1
$result = array();
foreach($data as $_data) {
  $result[$_data['bid_number']][] = array(
       'product' => $_data['product'],
       'over_data' => $_data['over_data'],
          .....
  );
}
print_r($result);

Но если возможно то лучше хранить сущность заказа в одной таблице, а сущность айтимов в другой. Либо заюзать поле json для хранения вложеного массива как есть.

READ ALSO
Замена значения по словарю при SELECT

Замена значения по словарю при SELECT

Пытался гуглить, но так и не смог ничего найти

237
Как передать массив во view

Как передать массив во view

У меня возникает ошибка Undefined variable: usersЯ заранее извиняюсь, вопрос конечно элементарный

159
Стоит ли использовать multi query для mysqli

Стоит ли использовать multi query для mysqli

Для множественного обновления нескольких строк до этого использовал один запрос и выражение CASE в немКак правило это усложняет написание...

196
Одинарные кавычки в echo php

Одинарные кавычки в echo php

Я новичок в PHP, не могу понять как использовать одинарные кавычки дважды (в echo и коде)

212