Получить двумерный массив из рез-тов выборки

Don Arana

Новичок
Получить двумерный массив из рез-тов выборки

Привет всем!
Подскажите пожалуйста:

Есть результаты выборки из БД:

1 | Canon | 10
2 | Canon | 19
3 | Canon | 100
4 | Nikon | 12
5 | Nikon | 13
6 | Minolta |11
7 | Minolta | 100
8 | Minolta | 19

Как можно получить двумерный массив типа:

PHP:
$array = array("Canon" => array(10, 19, 100))
                         "Nikon" => array(12, 13)
                         "Minolta" => array(11, 100, 19)
?
 

Don Arana

Новичок
Tor
Неа!
Cannot use a scalar value as an array

-~{}~ 05.05.05 11:08:

Ок, сейчас посмотрим
А то, что Вы сначала написали - см. выше :0)

-~{}~ 05.05.05 12:05:

SELECT vendor, category_id FROM table

PHP:
while($sql = mysql_fetch_assoc($result)) {
$array[] = $sql;
}
В итоге получаю:

Array
(
[0] => Array
(
[vendor] => Canon
[category_id] => 18
)

[1] => Array
(
[vendor] => Canon
[category_id] => 35
)

[2] => Array
(
[vendor] => Canon
[category_id] => 42
)
)

Немного не то :-\
 

SelenIT

IT-лунатик :)
Типа такого?
PHP:
while($sql = mysql_fetch_row($result)) {
   if(!isset($array[$sql[1]])) $array[$sql[1]] = array();
   $array[$sql[1]][] = $sql[2];
}
 

Tor

Новичок
даже легче

PHP:
while($sql = mysql_fetch_row($result)) 
   $array[$sql[1]][] = $sql[2];
 

Don Arana

Новичок
Что-то Ваши конструкции работают не совсем так, как хотелось бы :(

Пробую вот это:
PHP:
while($sql = mysql_fetch_assoc($result)) { 
   $vendor = $sql['vendor']; 
   $category = $sql['category']; 
   $array[$vendor][] = $category; 
}
Но получаю почти нужное:

Array
(
[Canon] => Array
(
[0] =>
[1] =>
[2] =>
)
[Nikon] => Array
(
[0] =>
[1] =>
)
...
)

А ожидаю:

Array
(
[Canon] => Array
(
[0] => 10
[1] => 19
[2] => 100
)
[Nikon] => Array
(
[0] => 12
[1] => 13
)
...
)

Виноват, ступил. Все заработало
Неправильно выбирал из БД (спутал название поля)
Нужно было так - $category = $sql['category_id'];
 
Сверху