|
|
|
| Нашел такой скрипт
Он работает только есть проблема!
Сортировка идет по цене
<?
$base_sort = "base_sort.dat";
function priceCmp ( $a, $b ){
if ( $a[price] == $b[price] ) return 0;
if ( $a[price] > $b[price] ) return -1; return 1;}
echo" <table align=center width=400><tr><td align=center> <font color=000080> Программа сортировки в текстовом файле</font></td></tr></table><br>";
echo" <table align=center width=400>
<tr>
<td align=center> <font color=ff0000> Имя</font></td>
<td align=center> <font color=ff0000> Описание</font></td>
<td align=center> <font color=ff0000> Цена</font></td>
</tr>";
if ($sort == price) {
$general = file($base_sort);
for ( $i = 0; $i < count ($general); $i++) {
list ($name,$a,$price) = explode("<>", $general[$i]);
$products[$i] = array( price => $price, name => "$name<>$a");
}
$fp = fopen ($base_sort, "w");
usort( $products, priceCmp );
foreach ( $products as $val ) fputs ($fp, "$val[name]<>$val[price]" );
fclose ($fp);
}
$general = file ($base_sort);
for ( $i = 0; $i < count ($general); $i++) {
list ($name,$a,$price) = explode("<>", $general[$i]);
echo"<tr>
<td align=center> $name</td>
<td align=center> $a</td>
<td align=center> $price</td>
</tr>";
}
echo"</table><br>
<table align=center width=400>
<tr>
<td align=center> </td>
<td align=center><a href=$PHP_SELF?act=sort&sort=price>сортировать по полю: Цена</a></td>
</tr>
</table>";
?>
Файл base_sort.dat
Арбуз<>круглый<>260 y.e.
Финик<>мягкий<>95 y.e.
Груша<>сладкая<>355 y.e.
Яблоко<>зеленое<>20 y.e.
Сортирует так
Финик<>мягкий<>95 y.e.
Груша<>сладкая<>355 y.e.
Арбуз<>круглый<>260 y.e.
Яблоко<>зеленое<>20 y.e.
То есть по первым 2 символам!
Как это решить подскажите! | |
|
|
|
|
|
|
|
для: Konnor
(25.05.2005 в 16:30)
| | Хм... не очень понятно что нужно решить-то? Чем не устраивает текущая соритровка и что требуется сделать? | |
|
|
|
|
|
|
|
для: cheops
(25.05.2005 в 20:41)
| | Мне нужно что бы сортировало по цене в сторону возрастания!
то есть
на выходе было
Груша<>сладкая<>355 y.e.
Арбуз<>круглый<>260 y.e.
Финик<>мягкий<>95 y.e.
Яблоко<>зеленое<>20 y.e.
Так что бы цены сортировались по возрастанию! | |
|
|
|
|
|
|
|
для: Konnor
(26.05.2005 в 14:15)
| | Помогите! | |
|
|
|
|
|
|
|
для: cheops
(25.05.2005 в 20:41)
| | Проблема в том, кажись, что подлые цифры представляются в виде текста и соответственно сортируются алфавитно, а не арифметически. | |
|
|
|