Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка масива, Нужно отсортировать масив 
:(
    Опции темы
Вася2
Дата 16.10.2003, 03:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я имею виду мне надо отсортировать тот файл а потом не куда не записывать
  Вверх
Secandr
Дата 16.10.2003, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



А как ты хочешь отсортировать файл не читая его? Если ты его читаешь, то информация "сохраняется" в памяти. И удобней "сохранять" её в виде массива. А затем ты уже можешь печатать этот массив, сохранять в тот же файл,...


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Вася2
Дата 17.10.2003, 03:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Secandr
Цитата
А как ты хочешь отсортировать файл не читая его? Если ты его читаешь, то информация "сохраняется" в памяти. И удобней "сохранять" её в виде массива. А затем ты уже можешь печатать этот массив, сохранять в тот же файл,...

Вы бы не могли написать мне код программы по вашему примеру, подробней, спасибо!
  Вверх
Secandr
Дата 17.10.2003, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



А что программа должна делать?
Вопрос был: "как отсортировать массив?". На него ответили. Что кроме этого сделать нужно?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Вася2
Дата 18.10.2003, 18:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
А что программа должна делать?
Вопрос был: "как отсортировать массив?". На него ответили. Что кроме этого сделать нужно?
Надо отсортировать как я написал выше и вывести на экран!
  Вверх
Secandr
Дата 19.10.2003, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Если первый вариант:
Код
$max[]=array($id,$press,$link,$name);
/***Заполняем массив (читаем из файла)
***/
function cmp ($a, $b) {  
  if ($a[1] == $b[1]) return 0;
  return ($a[1] < $b[1]) ? -1 : 1;
}

usort ($max, "cmp");

foreach ($max as $v)
{
echo "\n<br>id=".$v[0];
echo "\n<br>press=".$v[1];
echo "\n<br>link=".$v[2];
echo "\n<br>name=".$v[3];
echo "<hr>";
}
Если второй
Код
asort($array);
foreach ($array as $k=>$v)
{
echo "$k шт. - $v<br>\n";
}



--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Вася2
Дата 20.10.2003, 19:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
$max[]=array($id,$press,$link,$name);
/***Заполняем массив (читаем из файла)
***/
function cmp ($a, $b) { 
  if ($a[1] == $b[1]) return 0;
  return ($a[1] < $b[1]) ? -1 : 1;
}

А как мне мой файл прочитать в такой массив, вы простите за глупые вопросы, я только начал изучать ПХП
  Вверх
Secandr
Дата 21.10.2003, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Если файл такой:
Код
547|Книги
1|13|www.ru|Тетрадий
2|9876|www.ya.ru|Листов
То можно попробывать так:
Код
$tmp=readfile('my_bd.txt');
foreach ($tmp as $v)
 {
   $max[]=split('|',$v,4);
 }
Хотя не ручаюсь что работать будет безотказно



--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Вася2
Дата 22.10.2003, 17:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код
<?
$max[]=array($id,$press,$link,$name);
$tmp=readfile('base.dat');
foreach ($tmp as $v)
{
  $max[]=split('|',$v,4);
}
function cmp ($a, $b) {
 if ($a[1] == $b[1]) return 0;
 return ($a[1] < $b[1]) ? -1 : 1;
}

usort ($max, "cmp");

foreach ($max as $v)
{
echo "\n<br>id=".$v[0];
echo "\n<br>press=".$v[1];
echo "\n<br>link=".$v[2];
echo "\n<br>name=".$v[3];
echo "<hr>";
}

?>

Ваша программа не работает, посмотрите и исправьте ошибки, спасибо!
  Вверх
MuToGeN
Дата 22.10.2003, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 7
Всего: 32



что говорит?


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Dagger_live
Дата 22.10.2003, 20:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











$max2 = array(1,2,5,2,9,3,4);
$j = 0;
for( $i = 0; $i < sizeof( $max2 ); $i++){
if( $max2[$i] > $max2[$i+1]){ // change > to < for decrease or increase or contrary
$j = $max2[$i];
$max2[ $i ] = $max2[ $i + 1 ];
$max2[ $i + 1 ] = $j;
}
}
  Вверх
Dr.Death
Дата 22.10.2003, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 950
Регистрация: 15.7.2003
Где: Волгоград

Репутация: нет
Всего: 1



Dagger_live>>А если за один проход цикла мы не отсортируем массив, то как?
По мойму надо еще одну штуку сделать:
Код

$max2 = array(1,2,5,2,9,3,4);
$j = 0;
while($cnt>0)
{
$cnt=0;
for( $i = 0; $i < sizeof( $max2 ); $i++){
if( $max2[$i] > $max2[$i+1]){ // change > to < for decrease or increase or contrary
$j = $max2[$i];
$max2[ $i ] = $max2[ $i + 1 ];
$max2[ $i + 1 ] = $j;
$cnt++;
}
}
}  



--------------------
Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер
PM MAIL WWW ICQ   Вверх
Secandr
Дата 23.10.2003, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Dagger_live>> Зачем писать сортировку массива? Есть asort,usort, sort. !!!!!!

Почему бы просто не написать sort($max2) confused.gif?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Вася2
Дата 23.10.2003, 17:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Dagger_live: Скрипт сортирует плохо!
Результат:
Код

1
2
5
6
9
3
4

У меня был массив такой: $max2 = array(1,2,5,6,9,3,4);
А ваша (Dr.Death) сортировка вобще не работает.
Выдается ошибка:
Код

Notice: Undefined variable: cnt in E:\localhost\SORT.PHP on line 24

Подскажите как иправить этот глюк!!!
  Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0950 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.