Залип с проблемой, вроде ерунда на первый взгляд, но решить не получается :(
Имеем массив после выборки из БД, к примеру:
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. Если первым значением будет стоять другое поле, сортировка будет работать некорректно.
В данном случае сортировка сработает, если первым значением в массиве стоит 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 написал(а):
Всем большое спасибо
