[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод массива, туплю, хелп :(
bobo
Всем привет.
Залип с проблемой, вроде ерунда на первый взгляд, но решить не получается :(

Имеем массив после выборки из БД, к примеру:


array(
[
0] => array(
"model" => "Toyota",
"price" => "10000",
"mileage" => "45000"
),
[
1] => array(
"model" => "Toyota",
"price" => "20000",
"mileage" => "15000"
),
[
2] => array(
"model" => "Honda",
"price" => "12000",
"mileage" => "37000"
),
[
3] => array(
"model" => "Audi",
"price" => "19000",
"mileage" => "62000"
),

............
еще 100500 записей

)


Это кратко разумеется, каждой модели может быть неограниченного кол-во.
Нужно оформить вывод в хтмл в виде:

Toyota:
1. Toyota, цена 10000, пробег 45000;
2. Toyota, цена 20000, пробег 15000;
....
n. Toyota ....

Honda:
1. Honda, ....
2. Honda, ...
...
m. ....

И т.д. Вроде понятно объяснил.
Второй час бьюсь, нечего не выходит :( Дайте совет, как это можно сделать.
Заранее благодарю!





Спустя 13 минут, 9 секунд (30.05.2012 - 18:37) rooor написал(а):
foreach($массив as $ключ => $значение)
{
echo $ключ.". ".$значение['model'].", ".$значение['price'].", ".$значение['mileage']."<br>";
}

Спустя 6 минут, 47 секунд (30.05.2012 - 18:44) bobo написал(а):
Нужно не просто вывести все записи, а разбить их по моделям, в том то и прикол!
Написал же, что нужно получить в итоге, а в вашем примере получится просто список, все подряд.

Спустя 28 минут, 32 секунды (30.05.2012 - 19:12) ИНСИ написал(а):
bobo самому стало интересно - решил твою задачу. Получилось вот так:
function sortCmp($first, $second) {
return strcmp($first['model'], $second['model']);
};

$arr = array(
array( 'model' => 'Toyota' ),
array( 'model' => 'Mazda' ),
array( 'model' => 'Toyota' )
);


usort($arr, 'sortCmp');
print_r($arr);

Спустя 3 минуты, 58 секунд (30.05.2012 - 19:16) rooor написал(а):
$a = array(
0 => array(
"model" => "Toyota",
"price" => "10000",
"mileage" => "45000"
),
1 => array(
"model" => "Toyota",
"price" => "20000",
"mileage" => "15000"
),
2 => array(
"model" => "Honda",
"price" => "12000",
"mileage" => "37000"
),
3 => array(
"model" => "Audi",
"price" => "19000",
"mileage" => "62000"
),
4 => array(
"model" => "Honda",
"price" => "12000",
"mileage" => "37000"
),);

array_multisort($a);
foreach($a as $k => $v)
{
echo ($k+1).". ".$v['model'].", ".$v['price'].", ".$v['mileage']."<br>";
}

Спустя 6 минут, 25 секунд (30.05.2012 - 19:23) ИНСИ написал(а):
rooor Я тоже изначально решил задачу используя array_multisort, но выявил сразу баг.

В данном случае сортировка сработает, если первым значением в массиве стоит model. Если первым значением будет стоять другое поле, сортировка будет работать некорректно.

Спустя 1 минута, 45 секунд (30.05.2012 - 19:24) rooor написал(а):
ИНСИ
ну так массив определён...

Спустя 2 минуты, 17 секунд (30.05.2012 - 19:27) ИНСИ написал(а):
rooor я думаю ТС написал для примера данную структуру. Он вытаскивает данные из БД, а там всякое может быть.

Спустя 51 минута, 14 секунд (30.05.2012 - 20:18) bobo написал(а):
Всем большое спасибо smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.