1. PHP / Говнокод #9503

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 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").
    Один из вариантов ответа(остальные ответы аналогичны, отличаются синтаксисом).

    Запостил: truedizzy, 21 Февраля 2012

    Комментарии (11) RSS

    • А обязательно именно сортировать?
      $array = array('fisrt', 'second', 'third');
      array_unshift($array, null);
      unset($array[0]);
      print_r($array);
      Ответить
      • Виноват, совсем забыл, первый элемент это ноль ([0]=>"third",[1]=>"second",[2]=>"first")
        Ответить
    • $a = array('fisrt', 'second', 'third');

      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);
      }
      }
      Ответить
      • > Извините пожалйста
        После чего программа краснеет и стыдливо шаркает ножкой.
        Ответить
    • не проще сделать array_reverse($a) ?)
      Ответить
      • проще.
        но результат будет неверный.
        Ответить
        • и то верно, спутал начальный массив с первым в ответе
          тогда ответ будет:
          natsort($a);
          $a = array_reverse($a);
          Ответить
          • > natsort
            зачем? почему не просто sort?

            а вообще, есть функция rsort, которая сделает все вместе.
            Ответить
    • тоже верно
      Ответить
    • У жeны oкaзaлся любoвник, и я уeхaл, брoсив всё, в дaльнee Пoдмoскoвьe, гдe у мeня былa oднoкoмнaтнaя квaртирa
      Ответить

    Добавить комментарий