- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
<?
$a = array("second","third","first");
usort($a,"tes");
function tes($c, $d, $data){
if ($c == "third" && $d == "second") return -1;
if ($c == "third" && $d == "first") return -1;
if ($c == "first" && $d == "second") return 1;
if ($c == "second" && $d == "third") return 1;
if ($c == "first" && $d == "third") return 1;
if ($c==$d==$data) return 0;
}
print_r($a);
?>
В тестах задание, сортировать $a до вида ([1]=>"third",[2]=>"second",[3]=>"first").
Один из вариантов ответа(остальные ответы аналогичны, отличаются синтаксисом).
class sortirovka_massiva
{
public sortirovka($massiv)
{
if(!is_array($massiv)) return "Блин - это не массив!";
$sort_ili_nesort = file_get_content(sorting_settings.txt);
if($sort_ili_nesort!=0)
{
//сортируем
//так как элементов не много - вместо никому не нужной rsort(), испольнуем магию
$massiv = array('third','second','fisrt');
return $massiv;
}
else
{
return $massiv;
}
}
$s = new sortirovka_massiva;
$a = $s->sortirovka($a);
if($a=="Блин - это не массив!")
{
print_r("Извините пожалйста, но в метод был передан не массив");
}
else
{
print_r($a);
}
}
После чего программа краснеет и стыдливо шаркает ножкой.
но результат будет неверный.
тогда ответ будет:
natsort($a);
$a = array_reverse($a);
зачем? почему не просто sort?
а вообще, есть функция rsort, которая сделает все вместе.