|
|
|
|
|
для: cheops
(10.02.2011 в 08:33)
| | Я попробывал ещё такой вариант вывода машин меньшей стоимости,
тут всё хорошо, но опять получаеться что почемуто одну и туже машину выводит два раза а другую один раз - мистика какаято. Подскажите плз. как ещё можно это сделать???
<?php // выводим среднее значение
foreach($massiv3 as $key => $value)
{
for($j = 0; $j < count($massiv1); $j++)
{
if($massiv1[$j][2]<round($value[2]/$value[3]))
{$massiv4[]=$massiv1[$j][0].$massiv1[$j][1].$massiv1[$j][2]; }
}
}
echo implode('<br>',$massiv4);
|
| |
|
|
|
|
|
|
|
для: polopok
(10.02.2011 в 12:30)
| | Я не вижу, что бы хоть где-то учитывали год. Где вы ранее упоминали, что при расчете средней цены, учитывать год? Каким боком он может влиять на это? Если искать среднюю цену только среди годов выпуска тех авто, которые тоже этого года, то почему у вас в массиве они разного? Ну получайте только те что равны. Вы либо определитесь сперва с условиями поиска, расчета, и т.д., аж уж потом выставляйте задачу. Иначе.... | |
|
|
|
|
|
|
|
для: sim5
(10.02.2011 в 12:13)
| | Но суть мне ясна, т.е вы предлагаете определить среднюю цену всех машин находящихся в базе, а потом сравнить с массивом поступившах.
PS
Однако хочу заметить что и год тоже тут принимает участие потому как испать нужно выражение в виде ГОДАВТО - это делает более точное определение цен | |
|
|
|
|
|
|
|
для: polopok
(10.02.2011 в 12:24)
| | Точно, не так подумал. Ну надо немного изменить код, совсем чуточку, но сразу считать среднюю стоимость, без этих лишних действий и массивов промежуточных, а дале так как я писал. | |
|
|
|
|
|
|
|
для: sim5
(10.02.2011 в 12:13)
| | теперь понятно, почему вы думаеете, что средняя цена будет расти.
исходя из вашего скрипта, средняя цена Toyota Ist состовляет 300 000.
Однако если сложить 100 000 + 200 000 + 300 000 и разделить на 3,
то получиться 200 000 | |
|
|
|
|
|
|
|
для: polopok
(10.02.2011 в 12:09)
| | Получать из базы данные для расчета надо только тех машин, которые к вам поступили (в примере это Toyota и Honda), и только необходимых данных (имя, цена, у вас еще год, который не нужен при операциях), а у вас там и Лада еще и т.п.. Зачем гонять лишнюю попусту?
Что касается дальнейшего, то все проще можно сделать, нежели вы делаете. Вопрос как раз в ориентире - если брать среднюю цену всех, то она у вас будет расти постонно, если это удовлетворяет нет проблем. Если брать цену среднюю от минимальной и максимальной, то она будет может быть и постоянной, ну или иредко изменяемой, но подходит ли она вам.
Если брать по первому варианту то (с учетом вышесказанного - у вас должен быть массив из базы только поступивших авто, и только необходимых их данных):
<?
$dist = array(
array("Toyota Ist", "100000"),
array("Toyota Ist", "200000"),
array("Toyota Ist", "300000"),
array("Toyota Duet", "210000"),
array("Toyota Duet", "20000"),
array("Toyota Camry", "660000"),
array("Toyota Camry", "690000"),
array("Honda Odyssey", "354000"),
array("Honda Odyssey", "330000")
);
//считаем среднюю цену
$name = $dist[0][0];
$srch = array($name => 0);
foreach($dist as $v) {
if($name != $v[0]) {
$name = $v[0];
$srch[$name] = 0;
}
$srch[$name] += round($v[1]/2);
}
//это получившийся массив имен авто и их средняя цена
print_r($srch);
| Осталось пройтись по массиву поступивших машин, и сравнить среднюю цену из массива $srch по тем условиям, которые вам нужны.
PS. А теперь посчитайте калькулятором среднюю цену для разных групп, какова она?
PPS. Получив массив который удовлетворяет проценту от средней стоимости, функцией пересечения массивов получайте из массива пришедших авто эти авто, и далее их добавление в базу, надо полгать это конечная цель. | |
|
|
|
|
|
|
|
для: sim5
(10.02.2011 в 12:05)
| | Даже если и разная, всё равно в результате будет среднее число. Да собственно разговор не об этом. может вы лучше подскажите как добиться вышеизложеного результата? | |
|
|
|
|
|
|
|
для: polopok
(10.02.2011 в 11:46)
| | Да, вы так думаете? Это если цена у машин будет одинаковая. | |
|
|
|
|
|
|
|
для: sim5
(10.02.2011 в 11:20)
| | Средняя цена выше небудет, поскольку и количество машин будет тоже больше и делить мы будем просто теже числа только в разы больше. скажем 300000рублей/1000машин даст тотже результатт чтои 3000/10 | |
|
|
|
|
|
|
|
для: sim5
(10.02.2011 в 11:20)
| | Но как тогда, вывисти все машини которые дешевле средней стоимости?
потомушто в том коде что я дописал число строк массива4 меньше чем массива1 и поэтому если там две одинаковые марки будут он вывидет только одну | |
|
|
|
|