Автор Тема: usort  (Прочитано 31024 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
usort
« Ответ #30 : 10 Февраля 2004, 23:38:06 »
что делаешь ты, ставя ту или иную команду ПХП.
Поскольку ты совершенно не понимаешь, в каком месте тебе надо делать explode при сравнении, я делаю вывод, что ты не понимаешь что оно делает в твоем скрипте

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
usort
« Ответ #31 : 10 Февраля 2004, 23:42:59 »
только не думай, что ты отделаешься одним эксплодом.
опиши всю программу построчно.

Поверь, я не издеваюсь.
Но видеть, как ты с осмысленностью обезьяны переставляешь кусочки кода, как картинки в паззле - у меня сердце кровью обливается.

Давай, мы потратим немного времени, но ты будешь понимать, что делает каждая строчка твоей программи, и если тебе понадобится сортировка, ты будешь знать, куда ее впендюрить

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
usort
« Ответ #32 : 11 Февраля 2004, 00:04:50 »
ок
Следовательно так?:
$file="news/news.txt"; //Ссылка на массив
$arr=file($file); //$arr - берётся из данного массива
function cmp($a, $b) //Не уверен, сравнивает оператор а и б
{
if ($a == $b) {              //Если они равны по значению (по буквам)
return 0;                      //То выводятся одинаково
}
return ($a < $b) ? -1 : 1;  //Если а выше по алфавиту, то она выше б
}

$a = array($str[0], $str[0]);        //Создаёт массив (Вроде)

usort($a, "cmp");                      //Сортирует

while (list($key, $value) = each($a)) {     //не знаю
echo "$key: $value\\n";                  //Выводит
}
?>

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
usort
« Ответ #33 : 11 Февраля 2004, 00:55:14 »
у тебя был не этот.
этот - просто бред сивой кобылы.

ты уж лучше свой старый распиши.
там хоть только комментарии фантастические будут, а здесь - и код и твои объяснения.

Цитировать
$file="news/news.txt"; //Ссылка на массив

супер.
объясни мне, где здесь массив, и где - ссылка.
И, заодно - слышал ли ты что-нибудь о переменных?


Цитировать
$arr=file($file); //$arr - берётся из данного массива

что берется?
точно ли, из массива?
а не приходилось ли тебе когда-нибудь слышать такое слово - файл?

Цитировать
Создаёт массив (Вроде)

ЗАЧЕМ?

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
usort
« Ответ #34 : 11 Февраля 2004, 00:57:52 »
Да о перемнных слышал, о файлах тоже!
Про массив я сказал, что не уверен!
А про старый там и так есть комментарии, что там ещё написать?

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
usort
« Ответ #35 : 11 Февраля 2004, 01:01:18 »
Есть код:
// Эта функция должна сравнивать значения $f1 и $f2 и возвращать:
// -1, если $f1<$f2,
// 0, если $f1==$f2
// 1, если $f1>$f2
// Под < и > понимаем следование этих имен в выводимом списке
function FCmp($f1,$f2)
{ // Каталог всегда предшествует файлу
if(is_dir($f1) && !is_dir($f2)) return -1;
// Файл всегда идет после каталога
if(!is_dir($f1) && is_dir($f2)) return 1;
// Иначе сравниваем лексиграфически
if($f1<$f2) return -1; elseif($f1>$f2) return 1; else return 0;
}
// Пусть $Files содержит массив с ключами - именами файлов |Т У Т  ВОПРОС имеется ввиду, что $Files должен содеражть массив - это ссылка на файл с массивом? И выглядеть это должно так $Files="news/news.txt";
// в текущем каталоге. Отсортируем его.
uksort($Files,"FCmp"); //передаем функцию сортировки "по ссылке"

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
usort
« Ответ #36 : 11 Февраля 2004, 01:06:12 »
а теперь мои комментарии

объясняем парсеру ПХП, что хтмл кончился, и дальше идет пхп.

$file="news/news.txt";
ПЕРЕМЕННОЙ с именем $file присваиваем значение news/news.txt
переменная типа "строка".

$arr=file($file);
переменной с именем $arr присваивается результат работы функции file
результатом является переменная типа "массив", который получается при чтении файла, имя которого содержится в переменной  $file

массив - переменная из переменных.
массив состояит из ячеек, в которых лежат переменные.
как бутылки в ящике.
ты можешь вытащить любую бутылку, можешь перебрать их по очереди.
так и с переменными в массиве.
в твоем массиве лежат строки из файла.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
usort
« Ответ #37 : 11 Февраля 2004, 01:11:38 »
Цитировать
RomikChef:
А про старый там и так есть комментарии, что там ещё написать?

ну, раз там есть комментарии, то тебе ничего не стоит адаптировать этот код под себя - правда? :-)

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
usort
« Ответ #38 : 11 Февраля 2004, 01:17:29 »
А мне нужны столбики из файла? Если да, то как это реализовать?
Вроде str полностью этому удовлетворяет?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
usort
« Ответ #39 : 11 Февраля 2004, 01:58:17 »
у тебя не столбики, а строки.
завтра продолжим учиться

Хотя нет.
ты так и не привел кода, который без этих всех ужасоы выводит тебе твои столбики безо всякой сортировки.
пока его не будет - не начнем.

как можно сортирровать то чего нет?

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
usort
« Ответ #40 : 11 Февраля 2004, 18:10:10 »
Так!
   $file="news/news.txt";
  $arr=file($file);
  for ($i=0;$i<=count($arr)-1;$i++) {
   $str=explode(";",$arr[$i]);
   $menu.="$str[0]
";
  }
 echo $menu;
 ?>

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
usort
« Ответ #41 : 11 Февраля 2004, 18:38:23 »
рассказывай.
что делает этот код.
ты уже достаточно подкован.

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
usort
« Ответ #42 : 11 Февраля 2004, 18:53:52 »
$file="news/news.txt"; //Переменная бурещая данные из файла
  $arr=file($file);   //Переменная arr берётся из файла
  for ($i=0;$i<=count($arr)-1;$i++) {    //Вывод массива
   $str=explode(";",$arr[$i]);   //Тут описываем откуда берётся столбик
   $menu.="$str[0]
"; //Пишем, что выводит переменная мену!
  }
  echo $menu; //Выводим мену!

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
usort
« Ответ #43 : 11 Февраля 2004, 19:01:11 »
1 неправильно.
2. сойдет.
3. сойдет
4. бред. ничего мы никому не описываем. читай документацию на explode

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
usort
« Ответ #44 : 11 Февраля 2004, 20:34:40 »
1 - я не понял, что не правильно
4 Я неправильн выразился там описывается, что в строке всё разделяется через ;!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28