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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    function is_assoc( $array ) {
    
    	return is_array($array) && substr( json_encode($array), 0, 1 ) == '{';
    }

    Запостил: bot, 26 Июля 2016

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

    • Можешь писать мне на [email protected]
      Ответить
    • Ребята, вот Сахасрарой чувствую, что этот высер - говна самовар. Подсознательно, то бишь.
      Но так и не могу объяснить свои чувства по-человечески. Кундалини ещё не вышла.
      Будьте добры, объясните, пожалуйста, почему это говнокод?
      Ответить
      • Потому что проверить моссив на assoc можно за О(1)
        Ответить
        • ███████                                                                                                                         
          ██   ██                                                                                                                         
          ██   ██                                                                                                                         
          ██   ██  █████     ████ ██   ██ ██████  █████  ██████  ████        ██   ██  █████       ██   ██ ██   ██ ██ █ ██ ██   ██  ████   
          ██   ██ ██   ██   ██ ██ ██   ██ █ ██ █ ██   ██ █ ██ █     ██       ██   ██ ██   ██      ██   ██ ██   ██ ██ █ ██ ██   ██     ██  
          ██   ██ ██   ██  ██  ██ ██  ███   ██   ██   ██   ██    █████       ██   ██ ██   ██      ██   ██ ██   ██  █ █ █  ██   ██  █████  
          ██   ██ ██   ██  ██  ██ ██ █ ██   ██   ██   ██   ██   ██  ██       ███████ ███████      ███████ ██   ██  █████  ███████ ██  ██  
          ██   ██ ██   ██  ██  ██ ███  ██   ██   ██   ██   ██   ██  ██       ██   ██ ██           ██   ██ ██   ██  █ █ █  ██   ██ ██  ██  
          ██   ██ ██   ██  ██  ██ ██   ██   ██   ██   ██   ██   ██  ██       ██   ██ ██   ██      ██   ██  ██████ ██ █ ██ ██   ██ ██  ██  
          ██   ██  █████  ███  ██ ██   ██  ████   █████   ████   ███ ██      ██   ██  █████       ██   ██      ██ ██ █ ██ ██   ██  ███ ██ 
                                                                                                               ██                         
                                                                                                          ██   ██                         
                                                                                                           █████
          Ответить
          • Ты точно сюда хотел написать?
            Ответить
            • ███████                                                                                                                         
              ██   ██                                                                                                                         
              ██   ██                                                                                                                         
              ██   ██  █████     ████ ██   ██ ██████  █████  ██████  ████        ██   ██  █████       ██   ██ ██   ██ ██ █ ██ ██   ██  ████   
              ██   ██ ██   ██   ██ ██ ██   ██ █ ██ █ ██   ██ █ ██ █     ██       ██   ██ ██   ██      ██   ██ ██   ██ ██ █ ██ ██   ██     ██  
              ██   ██ ██   ██  ██  ██ ██  ███   ██   ██   ██   ██    █████       ██   ██ ██   ██      ██   ██ ██   ██  █ █ █  ██   ██  █████  
              ██   ██ ██   ██  ██  ██ ██ █ ██   ██   ██   ██   ██   ██  ██       ███████ ███████      ███████ ██   ██  █████  ███████ ██  ██  
              ██   ██ ██   ██  ██  ██ ███  ██   ██   ██   ██   ██   ██  ██       ██   ██ ██           ██   ██ ██   ██  █ █ █  ██   ██ ██  ██  
              ██   ██ ██   ██  ██  ██ ██   ██   ██   ██   ██   ██   ██  ██       ██   ██ ██   ██      ██   ██  ██████ ██ █ ██ ██   ██ ██  ██  
              ██   ██  █████  ███  ██ ██   ██  ████   █████   ████   ███ ██      ██   ██  █████       ██   ██      ██ ██ █ ██ ██   ██  ███ ██ 
                                                                                                                   ██                         
                                                                                                              ██   ██                         
                                                                                                               █████
              Ответить
          • "Политота не нужна" не нужна.
            Ответить
            • ███████                                                                                                                         
              ██   ██                                                                                                                         
              ██   ██                                                                                                                         
              ██   ██  █████     ████ ██   ██ ██████  █████  ██████  ████        ██   ██  █████       ██   ██ ██   ██ ██ █ ██ ██   ██  ████   
              ██   ██ ██   ██   ██ ██ ██   ██ █ ██ █ ██   ██ █ ██ █     ██       ██   ██ ██   ██      ██   ██ ██   ██ ██ █ ██ ██   ██     ██  
              ██   ██ ██   ██  ██  ██ ██  ███   ██   ██   ██   ██    █████       ██   ██ ██   ██      ██   ██ ██   ██  █ █ █  ██   ██  █████  
              ██   ██ ██   ██  ██  ██ ██ █ ██   ██   ██   ██   ██   ██  ██       ███████ ███████      ███████ ██   ██  █████  ███████ ██  ██  
              ██   ██ ██   ██  ██  ██ ███  ██   ██   ██   ██   ██   ██  ██       ██   ██ ██           ██   ██ ██   ██  █ █ █  ██   ██ ██  ██  
              ██   ██ ██   ██  ██  ██ ██   ██   ██   ██   ██   ██   ██  ██       ██   ██ ██   ██      ██   ██  ██████ ██ █ ██ ██   ██ ██  ██  
              ██   ██  █████  ███  ██ ██   ██  ████   █████   ████   ███ ██      ██   ██  █████       ██   ██      ██ ██ █ ██ ██   ██  ███ ██ 
                                                                                                                   ██                         
                                                                                                              ██   ██                         
                                                                                                               █████
              Ответить
            • Политота нужна?
              Ответить
              • Нет. Политота не нужна. Но и "политота не нужна" не нужна.
                Ответить
                • > Нет. Политота не нужна. Но и "политота не нужна" не нужна.

                  I disapprove of what you say, but I will defend to the death your right to say it.
                  — Evelyn Beatrice Hall
                  Ответить
                  • Свиномовный прибежал.
                    Ответить
                  • > but I will defend to the death your right to say it

                    Это полный булщит, кстати.
                    Никто никогда так не делает.

                    Люди поддерживают только то, что считают правильным и хорошим.

                    Если ты считаешь человека мудаком, то ты пальцем-о-палец не ударишь, даже если его будут щемить по беспределу.
                    Ответить
                    • > Никто никогда так не делает.

                      Ну да, это цитата из книжки, емнип.

                      А на практике тебя просто отменят и даже не будут пытаться "to disapprove of what you say".
                      Ответить
                      • потому что это идея ле берализма, правой идеологии, а те, кто сейчас называют себя ле бералами - тупо красные
                        у ватников "национализм" ровно такой же
                        Ответить
                • познай рекурсию с говнокодом
                  Ответить
          • #скрылбота
            Ответить
        • > проверить моссив на assoc можно за О(1)
          А вы не напомните как?
          Ответить
          • Ответить
            • ███████                                                                                                                         
              ██   ██                                                                                                                         
              ██   ██                                                                                                                         
              ██   ██  █████     ████ ██   ██ ██████  █████  ██████  ████        ██   ██  █████       ██   ██ ██   ██ ██ █ ██ ██   ██  ████   
              ██   ██ ██   ██   ██ ██ ██   ██ █ ██ █ ██   ██ █ ██ █     ██       ██   ██ ██   ██      ██   ██ ██   ██ ██ █ ██ ██   ██     ██  
              ██   ██ ██   ██  ██  ██ ██  ███   ██   ██   ██   ██    █████       ██   ██ ██   ██      ██   ██ ██   ██  █ █ █  ██   ██  █████  
              ██   ██ ██   ██  ██  ██ ██ █ ██   ██   ██   ██   ██   ██  ██       ███████ ███████      ███████ ██   ██  █████  ███████ ██  ██  
              ██   ██ ██   ██  ██  ██ ███  ██   ██   ██   ██   ██   ██  ██       ██   ██ ██           ██   ██ ██   ██  █ █ █  ██   ██ ██  ██  
              ██   ██ ██   ██  ██  ██ ██   ██   ██   ██   ██   ██   ██  ██       ██   ██ ██   ██      ██   ██  ██████ ██ █ ██ ██   ██ ██  ██  
              ██   ██  █████  ███  ██ ██   ██  ████   █████   ████   ███ ██      ██   ██  █████       ██   ██      ██ ██ █ ██ ██   ██  ███ ██ 
                                                                                                                   ██                         
                                                                                                              ██   ██                         
                                                                                                               █████
              Ответить
          • ███████                                                                                                                         
            ██   ██                                                                                                                         
            ██   ██                                                                                                                         
            ██   ██  █████     ████ ██   ██ ██████  █████  ██████  ████        ██   ██  █████       ██   ██ ██   ██ ██ █ ██ ██   ██  ████   
            ██   ██ ██   ██   ██ ██ ██   ██ █ ██ █ ██   ██ █ ██ █     ██       ██   ██ ██   ██      ██   ██ ██   ██ ██ █ ██ ██   ██     ██  
            ██   ██ ██   ██  ██  ██ ██  ███   ██   ██   ██   ██    █████       ██   ██ ██   ██      ██   ██ ██   ██  █ █ █  ██   ██  █████  
            ██   ██ ██   ██  ██  ██ ██ █ ██   ██   ██   ██   ██   ██  ██       ███████ ███████      ███████ ██   ██  █████  ███████ ██  ██  
            ██   ██ ██   ██  ██  ██ ███  ██   ██   ██   ██   ██   ██  ██       ██   ██ ██           ██   ██ ██   ██  █ █ █  ██   ██ ██  ██  
            ██   ██ ██   ██  ██  ██ ██   ██   ██   ██   ██   ██   ██  ██       ██   ██ ██   ██      ██   ██  ██████ ██ █ ██ ██   ██ ██  ██  
            ██   ██  █████  ███  ██ ██   ██  ████   █████   ████   ███ ██      ██   ██  █████       ██   ██      ██ ██ █ ██ ██   ██  ███ ██ 
                                                                                                                 ██                         
                                                                                                            ██   ██                         
                                                                                                             █████
            Ответить
            • Ты не терапевт, а гомеопат какой-то...
              Ответить
              • ███████                                                                                                                         
                ██   ██                                                                                                                         
                ██   ██                                                                                                                         
                ██   ██  █████     ████ ██   ██ ██████  █████  ██████  ████        ██   ██  █████       ██   ██ ██   ██ ██ █ ██ ██   ██  ████   
                ██   ██ ██   ██   ██ ██ ██   ██ █ ██ █ ██   ██ █ ██ █     ██       ██   ██ ██   ██      ██   ██ ██   ██ ██ █ ██ ██   ██     ██  
                ██   ██ ██   ██  ██  ██ ██  ███   ██   ██   ██   ██    █████       ██   ██ ██   ██      ██   ██ ██   ██  █ █ █  ██   ██  █████  
                ██   ██ ██   ██  ██  ██ ██ █ ██   ██   ██   ██   ██   ██  ██       ███████ ███████      ███████ ██   ██  █████  ███████ ██  ██  
                ██   ██ ██   ██  ██  ██ ███  ██   ██   ██   ██   ██   ██  ██       ██   ██ ██           ██   ██ ██   ██  █ █ █  ██   ██ ██  ██  
                ██   ██ ██   ██  ██  ██ ██   ██   ██   ██   ██   ██   ██  ██       ██   ██ ██   ██      ██   ██  ██████ ██ █ ██ ██   ██ ██  ██  
                ██   ██  █████  ███  ██ ██   ██  ████   █████   ████   ███ ██      ██   ██  █████       ██   ██      ██ ██ █ ██ ██   ██  ███ ██ 
                                                                                                                     ██                         
                                                                                                                ██   ██                         
                                                                                                                 █████
                Ответить
              • "Степан, ёбт". Просто буквица проебалась.
                Ответить
              • Или просто гомео
                Ответить
                • Гомео, шо ви таки опять около нашего балкончика ходите? Ви таки и отгавиться можете случайно.
                  Ответить
                  • Я Вам не скажу за всю Верону, но в Сан Дзено любой биндюжник скажет, шо случайностей не бывает.
                    Ответить
              • петапевт
                Ответить
          • array(0=>2, 2=>'hui') - это какой?
            Ответить
            • Ассоциативный. Но в коде происходит явное назначение ключей в массиве. (это если не было unset(array[1])), конечно же)
              Ответить
            • Кто о чем, а пидар о хуях
              Ответить
      • Представим себе, что в массиве порядка гигабайта данных. Чтобы только проверить, является ли он ассоциативным, мы его копируем и выполняем ещё кучу ненужных операций.

        В этой же задаче достаточно выбрать ключи функцией array_keys и, если среди них найдётся хотя бы один нечисловой, то делаем вывод о том, что массив ассоциативный. Пробегать значения массива не нужно.
        Ответить
        • Я наврал. Функция json_encode считает обычным массивом только массив, индексы которого представляют собой арифметическую прогрессию с шагом 1, начинающуюся с нуля. Если индекс начинается не с нуля или есть хотя бы один разрыв, то массив считается ассоциативным.
          Ответить
          • Да. В PHP нет такого типа как список. Фактически там все массивы ассоциативные.
            В общем, суть такова. В PHP-коде популярно используются конструкции вида:
            $array[] = 'value';

            И вида:
            $array['key'] = 'value';

            Первая - реализует список, а вторая - хэш.
            Вот задача как раз в том, чтобы их и различать.

            Кстати, гигабайтов, также не может быть - ибо PHP.

            А вот, не кстати, unset элемента массива - вполне себе возможен.
            Ответить
            • В общем, самым надёжным решением будет такое:
              function is_assoc( $array ) {
              	return true;
              }


              Ибо достаточно случайно сделать unset у какого-нибудь элемента списка из середины, как он превратится в ассоциативный массив.

              И работать такая функция будет за O(1).
              Ответить
    • Просто поржать: https://habrahabr.ru/post/198312/
      Ответить
      • хахаха
        бугагага

        вот что бывает когда у макак нет в языке нормальных внешних пакетов
        Ответить
        • Тут не в пакетах дело, а в том, что копирасты в любой момент могут прицепиться к одной строчке лицензии.
          Ответить
          • Или красноглазики.
            Ответить
          • Эм, а почему бы просто другую реализацию json'а не взять, раз тут лицензия ебанутая?
            Ответить
            • ну видимо они не могут в одну ночь переключиться на другой пакет
              Ответить
              • Ну годами юзали, можно было ещё месяц-другой поюзать во имя луны.
                Ответить
      • Пыхомакакам не до смеха.
        Ответить
      • Какой багор )))
        Выглядит, как первоапрельская шутка.
        Ответить
        • этож пыхеры

          кто пыхером был -- тот в цирке не смеется
          Ответить
    • IsBukva недели как минимум
      Ответить
      • isFike
        Ответить
        • def isMeh?
            'nah'
          end
          Ответить
          • Блять, вот был бы такой конлеплерятор, в котором можно было бы смешивать и использовать только лучшие особенности различных языков программирования. Для каждой конкретной задачи. И чтобы переменные и области памяти переходили от языка к языку, и чтобы эта память идеально распределялась и выперделялась, и чтобы.. и чтобы.. и вообще чтобы заебись было.

            #!/bin/php
                // получаем параметры конфигурации из какого-то ini файла
            
            #!/bin/haskel
                // создаём охуенно компактную, но не менее охуенную и неебическую формулу для фильтрации данных
            
            #!/bin/mysql
                // применяем эту формулу и делаем сложнейшую выборку из БД и сохраняем результат в файл
            
            #!/bin/bash
                // проверяем соединения с хуй-пойми-чем-и-зачем и выбираем awk'ом  значения из предыдущего результата (тоже не знаю зачем. Но, блять, надо! же!)
                
            #!/bin/python
                // расщепляем программу на процессы для ускорения обработки данных
            
            #!/bin/erlang
                // расщепляем процессы на кварки для безумного ускорения обработки данных
            
            #!/bin/java
                // не, ну её на хуй
            
            #!/bin/asm
                cli
                in   al, 70h
                or   al, 80h
                out  70h, al
            
            #!/bin/basic
            
                10 print "Hello, world!"


            Блять, мне кажется под утро, я несу какую-то хуйню и вообще изобретаю какой-то PHP... Пиздец.

            PS. Блин. Забыл применить "Си" и "Паскаль"... Пойду, лучше, уебусь об угол занавески.
            Ответить
            • RPC
              Ответить
            • > И чтобы переменные и области памяти переходили от языка к языку

              Разумеется, это уже давно есть в Emacs.
              Называется Babel.
              http://orgmode.org/worg/org-contrib/babel/
              Ответить
              • А там можно кобенировать вореции и удалять куки браузерами? Ну или, хотя бы, примитивно грабить корованы?
                Ответить
            • Куда вписывать всё то, что вы мне говорите??
              Ответить
          • ого, файк бы рубистом
            Ответить
            • кек, вчера наткнулся на интересный мне прелоскрипт, смотрю в каментах бегает "смарите, смарите, я переписал на рубе"
              заглядываю туда в надежде, что более читаемо, а там говна бойлерплейтного раза в 4 вербознее чем в оригинале
              Ответить

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