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

    +151

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (count($items) > 100) {
        for ($i = count($items); 100 < count($items); $i--) {
            unset($items[$i-1]);
        }
    }

    Массив должен содержать сто или меньше элементов

    Запостил: VanSanblch, 16 Апреля 2013

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

    • а в чём говнокод?
      может, стилистически не очень красиво, но по сути - как иначе-то?
      если массив большой, то можно копировать сто элементов в новый массив. если маленький, то вырезать лишнее.
      Ответить
      • Если по сути то array_slice/array_splice
        Ответить
        • ясно, спасибо!
          Ответить
        • array_slice, array_splice
          В вашем ПоХаПэ черт ногу сломит.
          Могу еще названий придумать, догадайтесь что делают...
          array_plice, array_dice, array_mice, array_rice, array_lomice, array_ebice, ....
          Ответить
          • printf/fprintf/sprintf, ltrim/rtrim
            Ответить
            • vsprintf ещё до кучи
              Ответить
              • Тогда полный список: printf, fprintf, sprintf, vfprintf, vprintf, vsprintf

                Но с приставкой v - это то же самое, только аргументы иначе передаются.
                Ответить
                • Еще безопасные snprintf, vsnprintf.
                  И от майкрософта - printf_s, fprintf_s, sprintf_s...
                  От борланд си досовского - цветной cprintf или как там его.
                  И юникодные - wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf.
                  От ncurses - printw, wprintw, mvprintw, mvwprintw, vwprintw, vw_printw.

                  P.S. Ну и до кучи из моей консольной проги lprintf для логов ;)
                  P.P.S. Нужно больше принтфов.
                  Ответить
                  • принтф принтфом погоняет
                    Ответить
                  • Ну! И сколько из них реально вы юзаете?
                    Ответить
                    • Если взять за все время - то половину из них точно юзал. Больше всего на сишке юзал printf, fprintf и snprintf/vsnprintf. А в крестах - ни одного.
                      Ответить
                  • Я перечислял только те, что есть в PHP.
                    Ответить
      • По сути, нужно выделить память строго на 100 элементов массива, и записать туда исходный массив. А потом обратно считать.
        Ответить
        • На пыхе то? Выделить память? Ммм, чот тип того:
          $shm = shm_attach(1, 100, 0660);
          $sem = sem_get(1, 1, 0660);
          sem_acquire($sem);
          shm_put_var($shm, 1, range(0, 1000));
          sem_release($sem);
          Ответить

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