|
|
|
| Здравствуйте! Читаю сейчас книгу по 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");
}
}
?>
|
Подскажите пожалуйста как сделать сортировку? | |
|
|
|
|
|
|
|
для: 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");
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Valick
(06.03.2012 в 09:41)
| | Спасибо! Только не a так
Просто использовал не ту функцию для сортировки. | |
|
|
|
|
|
|
|
для: AleX-YaR
(07.03.2012 в 01:05)
| | почему сравнение ( == ) вместо присваивания ( = ) ? | |
|
|
|
|
|
|
|
для: Valick
(07.03.2012 в 03:45)
| | не знаю, но с присваиванием выводит:
Warning: Invalid argument supplied for foreach()
а со сравнением работает нормально | |
|
|
|
|
|
|
|
для: 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");
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Киналь
(07.03.2012 в 10:46)
| | спасибо за поправку | |
|
|
|
|
|
|
|
для: Киналь
(07.03.2012 в 10:46)
| | спасибо) | |
|
|
|