Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывести в браузер список, отсортированный по алфавиту в обратном порядке.
 
 автор: AleX-YaR   (06.03.2012 в 08:59)   письмо автору
 
 

Здравствуйте! Читаю сейчас книгу по PHP5, и там такое задание: Выведите в браузер список преподавателей каждой кафедры, отсортированный по алфавиту в обратном порядке.
Список преподавателей каждой кафедры уже сделал:
<?php
$kafs 
= array ( "PMM" => array ( "Vasiliy Petrovich" => "20",
                                   
"Dyadya Stepa" => "23",
                                   
"Tetya Klava" => "26"
                                    
),
                  
"KN"  => array ( "Sergey Vladimirovich" => "29",
                                   
"Vladimir Sergeevich" => "32",
                                   
"Mariya Petrovna" => "35",
                                   
"Katya Kulachkova" => "38",
                                   
"Vanya Ivanov" => "41",
                                   
"Stepa Petrov" => "44"
                                    
),
                  
"KIU"  => array ( "Ivan Vladimirovich" => "47",
                                    
"Petr Nikiforovich" => "50",
                                    
"Alexander Sergeevich" => "53",
                                    
"Ekaterina Pervaya" => "56"
                                    
)
                );
                

foreach (
$kafs as $index => $val)
{
    echo(
"<br><b>$index</b>\n"."\n");
    foreach(
$val as $a => $b)
        {
            
$stepen "Доцент";
            
$doljnast "Препод";
            if (
$a == "Vasiliy Petrovich" || $a == "Sergey Vladimirovich" || $a == "Ivan Vladimirovich"$stepen "Профессор";
            if (
$a == "Alexander Sergeevich" || $a == "Katya Kulachkova" || $a == "Tetya Klava"$stepen "Аспирант";
            if (
$a == "Vasiliy Petrovich" || $a == "Sergey Vladimirovich" || $a == "Ivan Vladimirovich"$doljnast "Зав. Кафедрой";
            echo(
"\t<li>$a$b лет, $stepen$doljnast</li>\n");
        }
}

?> 


Подскажите пожалуйста как сделать сортировку?

  Ответить  
 
 автор: Valick   (06.03.2012 в 09:41)   письмо автору
 
   для: AleX-YaR   (06.03.2012 в 08:59)
 

krsort
foreach ($kafs as $index => $val)
{
    $val=krsort($val);
    echo("<br><b>$index</b>\n"."\n");
    foreach($val as $a => $b)
        {
            $stepen = "Доцент";
            $doljnast = "Препод";
            if ($a == "Vasiliy Petrovich" || $a == "Sergey Vladimirovich" || $a == "Ivan Vladimirovich") $stepen = "Профессор";
            if ($a == "Alexander Sergeevich" || $a == "Katya Kulachkova" || $a == "Tetya Klava") $stepen = "Аспирант";
            if ($a == "Vasiliy Petrovich" || $a == "Sergey Vladimirovich" || $a == "Ivan Vladimirovich") $doljnast = "Зав. Кафедрой";
            echo("\t<li>$a, $b лет, $stepen, $doljnast</li>\n");
        }
}

?> 

  Ответить  
 
 автор: AleX-YaR   (07.03.2012 в 01:05)   письмо автору
 
   для: Valick   (06.03.2012 в 09:41)
 

Спасибо! Только не
$val = krsort($val);
a так
$val == krsort($val);

Просто использовал не ту функцию для сортировки.

  Ответить  
 
 автор: Valick   (07.03.2012 в 03:45)   письмо автору
 
   для: AleX-YaR   (07.03.2012 в 01:05)
 

почему сравнение ( == ) вместо присваивания ( = ) ?

  Ответить  
 
 автор: AleX-YaR   (07.03.2012 в 08:42)   письмо автору
 
   для: Valick   (07.03.2012 в 03:45)
 

не знаю, но с присваиванием выводит:

Warning: Invalid argument supplied for foreach()

а со сравнением работает нормально

  Ответить  
 
 автор: Киналь   (07.03.2012 в 10:46)   письмо автору
 
   для: AleX-YaR   (07.03.2012 в 08:42)
 

Не надо шаманить над кодом! И изучать его работу методом научного тыка (тем более что он, как правило, совсем не научный).
Как написано в мануале, функция krsort() возвращает не массив, а состояние — булеву переменную. То есть правильно будет так:


<?
$kafs 
= array ( "PMM" => array ( "Vasiliy Petrovich" => "20"
                                   
"Dyadya Stepa" => "23"
                                   
"Tetya Klava" => "26" 
                                    
), 
                  
"KN"  => array ( "Sergey Vladimirovich" => "29"
                                   
"Vladimir Sergeevich" => "32"
                                   
"Mariya Petrovna" => "35"
                                   
"Katya Kulachkova" => "38"
                                   
"Vanya Ivanov" => "41"
                                   
"Stepa Petrov" => "44" 
                                    
), 
                  
"KIU"  => array ( "Ivan Vladimirovich" => "47"
                                    
"Petr Nikiforovich" => "50"
                                    
"Alexander Sergeevich" => "53"
                                    
"Ekaterina Pervaya" => "56" 
                                    

                );
foreach (
$kafs as $index => $val

    
krsort($val); 
    echo(
"<br><b>$index</b>\n"."\n"); 
    foreach(
$val as $a => $b
        { 
            
$stepen "Доцент"
            
$doljnast "Препод"
            if (
$a == "Vasiliy Petrovich" || $a == "Sergey Vladimirovich" || $a == "Ivan Vladimirovich"$stepen "Профессор"
            if (
$a == "Alexander Sergeevich" || $a == "Katya Kulachkova" || $a == "Tetya Klava"$stepen "Аспирант"
            if (
$a == "Vasiliy Petrovich" || $a == "Sergey Vladimirovich" || $a == "Ivan Vladimirovich"$doljnast "Зав. Кафедрой"
            echo(
"\t<li>$a$b лет, $stepen$doljnast</li>\n"); 
        } 


?> 

  Ответить  
 
 автор: Valick   (07.03.2012 в 11:35)   письмо автору
 
   для: Киналь   (07.03.2012 в 10:46)
 

спасибо за поправку

  Ответить  
 
 автор: AleX-YaR   (08.03.2012 в 12:36)   письмо автору
 
   для: Киналь   (07.03.2012 в 10:46)
 

спасибо)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования