За последние 24 часа нас посетил 27781 программист и 1815 роботов. Сейчас ищут 1095 программистов ...

Помогите решить интересную задачку

Тема в разделе "Прочие вопросы по PHP", создана пользователем mikhail.nikula, 1 сен 2016.

Метки:
  1. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    На колу мочало, начинай сначала.
    Я уже ответил на все эти вопросы. Описал, почему, что и как. И то, нафига это написал, и то, что имел ввиду, говоря, что задача тривиальная. Там все написано русским по светло-серому.

    Могу повторить в кратком виде:
    1) Я сказал, что это какая-то извращенная форма тривиальной задачи.
    2) Ты начал диалог со мной, спросив решение того, что я назвал тривиальной задачей. При этом контекст был задан пунктом 1.
    3) Я ответил на твой вопрос.

    Пожалуйста, не спрашивай и в третий раз один и тот же вопрос. Впервые в жизни, когда меня переспрашивают, я отвечаю каждый раз не в более расширенном варианте, а в более кратком. Я ответил тебе максимально развернуто в нескольких вариациях. Исчерпывающе настолько, насколько можно. С описанием логики моих действий от и до. По-моему этого должно быть достаточно.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты написал "это трививальная задача". Без пояснения, что ты имеешь в виду совсем другую, не эту, задачу. Я хочу, чтобы ты просто согласился с такой трактовкой. Для меня это важно.
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Контекст, Игорь. Контекст. В нем все, что ты хочешь узнать. Мне казалось, что то, что я говорю не конкретно о том, что задали автору, а о том, чем это является в общем виде, очевидно. Если недостаточно очевидно без пояснений, то их было уже несколько. Исчерпывающих.

    Разве не очевидно, что я имел ввиду? Разве не очевидно, что тривиальной задачей я назвал именно разворачивание дерева в памяти? Разве не очевидно, что я при этом подчеркнул отдельно, что для тривиальной задачи почему-то требуют странное и глупое решение? Разве это не было написано прямо?

    У меня ощущение, что ты про привычке бесед с известными товарищами, пытаешься устроить провокацию, сам того не осознавая, но я не понимаю, почему тот факт, что тривиальной задачей я назвал развертывание MPath-дерева, а не то, как попросили это сделать автора, до сих пор тебе не очевиден. Очевиднее только снег на северном полюсе. Я даже жирным шрифтом выделял это. Серьезно. Я несколько раз это говорил прямо. И говорю снова. Прямо. Вот честно. Прямо как линия, лежащая всего на двух точках. И подчеркивал, что нигде не говорил обратного. Ну чесслово, хватит прокидывать мои простыни текста и пытаться вытащить на свет то, что никто не скрывал, и чем сам машет перед всеми.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    мне не очевидно. Я вижу, что чел говорит про то, что нужно разбираться в странных задачах. А ты говоришь, что это тривиальная задача. Ты называешь странную задачу тривиальной. Это у меня так мозги работают, сори.

    понятно, что тебе это очевидно, ведь у тебя в голове есть ход твоей беседы. А у меня-то нет твоих мыслей. Мне кажется это нормально. =) Ничего плохого не имел в виду, просто для меня это выглядело именно так.
     
    #29 igordata, 4 сен 2016
    Последнее редактирование: 4 сен 2016
  5. bikerlex

    bikerlex Активный пользователь

    С нами с:
    2 дек 2014
    Сообщения:
    344
    Симпатии:
    40
    Может это задача с подвохом. Типа ты должен возмутится.
    - Ребята вы мне какую-то дичь втираете, так не делается. А делается так...
    - О чувак, да ты шаришь. Завтра к 9 утра.
     
    Anhk и denis01 нравится это.
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Да, я про это тоже написал выше. Эдакий тест на профпригодность. CodeMonkey возьмется пилить любой ценой не думая. Джун или Миддл призадумается и начнет задавать вопросы. Сеньор увидит, что это и к чему, и скажет, что "да вы все ебанулись, если у вас и все остальное так же, вы мне не подходите".
     
  7. mikhail.nikula

    mikhail.nikula Новичок

    С нами с:
    1 сен 2016
    Сообщения:
    11
    Симпатии:
    0
    Может быть и так, потому что они на собеседование все равно позвали)
    Но задача и вправду странная, на собеседовании попрошу решение
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    крайне хуёвый тест, который может отвернуть людей, которые не хотят уже тратить своё профессиональное время на танцы с морочками болявых HR.
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Тысячи их. Это норма.
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    =(
    я считаю, что нанимать команду должен непосредственный руководитель этой команды. А не HR болявые. :D Да...
     
  11. Anhk

    Anhk Активный пользователь

    С нами с:
    13 дек 2015
    Сообщения:
    219
    Симпатии:
    11
    @igordata, ты ж вроде занимаешься наймом работников?
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    если самому себе, то да. Обычно мне немного надо.
     
  13. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    напомнило:

    Знакомый на работу устраивался. Сварщиком. Собеседование в отделе HR (Модно сейчас — "эйчар"). Мастер цеха пришёл и сидят вместе с девочкой–кадровичкой общаются. Мастер спрашивает что варил, разряд и прочие тонкости. Вопросов много задавал, знакомый отвечал и рассказывал. Девочка слушала.

    Побеседовали минут двадцать. Мастер говорит девочке прямо при знакомом: "Ну, специалист, вроде, толковый — прошу оформить к нам."

    Девочка: "Подождите! Надо пройти ещё психологический тест!"

    Мастер: "А что за тест?"

    Девочка: "Ну, психологический! Мы должны понять же, человек подходит нам или нет, как Вы не понимаете?"

    Мастер: "Так а что в этом тесте то?"

    Девочка: "Ну, линии там, круглешочки, картинки показываем человеку, а на основании его ответов составляем картину совместимости, даём руководству ясное представление о работнике, которого принимаем."

    Мастер: "Давай бумажку — я за него нарисую."

    Девочка оху..вает слегка, но даёт лист А4 и ручку. Мастер выводит на ней контуры (без анатомических подробностей!) фига, протягивает её и спрашивает:"Что я нарисовал?"

    Девочка краснеет, но говорит: "Член."

    Мастер девочке говорит: "Юля! Будь добра, оформи человека без всей этой твоей х..йни, пока я всем не сказал, что ты деталь НВ–46–39–00 из каталога нашего завода с х..ем путаешь."
     
    Taktreba, vayas, runcore и 4 другим нравится это.
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Если кому интересно, я решил задачу путешествия по ветвям развернутого дерева через mPath-адреса, без рекурсий и циклов.
    Кому отборнейшей индусятинки?
    Серьезно, этот код настолько индусский, что он пахнет карри.
    PHP:
    1. <?php
    2. function getElementByPath($array, $path)
    3. {
    4.     $shame = false;
    5.     $wow_such_result = [$path,&$shame];
    6.     $fucking_madness = json_encode($array);
    7.     $fucking_madness = str_replace('":{"', '.', $fucking_madness);
    8.     $fucking_madness_so_madness = explode(',', $fucking_madness);
    9.     array_walk($fucking_madness_so_madness, function ($shit, $shitted_key, $ohmygod) {
    10.         $shit = str_replace(['"','{','}'], '', $shit);
    11.         $holy_shit = explode(':',$shit);
    12.         if ($holy_shit[0] === $ohmygod[0]) {
    13.            $ohmygod[1] = $holy_shit[1];
    14.         }
    15.     },$wow_such_result);
    16.     return $shame;
    17. }
    18.  
    19. $arr = ['s1' => ['s2' => ['s3' => ['s8' => '123']]], 's4' => ['s5' => ['s6' => '321']]];
    20. var_dump(getElementByPath($arr,'s1.s2.s3.s8')); // 123
    21. var_dump(getElementByPath($arr,'s4.s5.s6')); // 321
    22. var_dump(getElementByPath($arr,'s4.s5.s6.s555')); // false
    Да, там есть легкая, кхм, обфускация названий переменных, дабы автор не скопипастил не глядя. Иначе будет конфуз. Надо, чтобы он попытался для себя разобраться, что там, черт возьми, происходит.
     
    denis01 и igordata нравится это.
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ой, мама
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    हालांकि, यह काम करता है।
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Меняй суриката на корову
     
  18. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Осталось написать функцию, которая делает то же самое, но через циклы и рекурсию (первый код, что я выложил, не пойдет, он решает задачу развертывания дерева из MPath в массив, в то время как тут задача навигации по такому массиву через MPath, что само по себе дебилизм, ну да ладно), задать тяжелую структуру и проверить, что работает быстрее и экономинее.

    Да, мой индусский код работает только в случае, если по адресу вы выбираем конечное значение, а не подветвь. Про подветви у автора в задании ничего не было. В крайнем случае - сам допишет. Джими Джими Димими, айха айха!
    --- Добавлено ---
    Не, надеюсь, я еще не настолько обезумел.
     
  19. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Написал рекурсивно-цикловую альтернативу:

    PHP:
    1. function getElementByPath_no_indus($array, $path)
    2. {
    3.     $result = false;
    4.     if (!is_array($path)) {
    5.         $path_nodes = explode('.', $path);
    6.         $result = getElementByPath_no_indus($array, $path_nodes);
    7.     }
    8.     foreach ($array as $key => $val) {
    9.         if ($key === $path[0]) {
    10.             if (is_array($val)) {
    11.                 array_shift($path);
    12.                 $result = getElementByPath_no_indus($val, $path);
    13.             } else {
    14.                 if (sizeof($path) === 1) {
    15.                     $result = $val;
    16.                 } else {
    17.                     break;
    18.                 }
    19.             }
    20.             break;
    21.         }
    22.     }
    23.     return $result;
    24. }
    Напилил массивчик небольшой:
    PHP:
    1. $arr = ['s1' => ['s2' => ['s3' => ['s8' => '123']]]
    2.     , 's24' => ['s5' => ['s6' => '321']]
    3.     , 's34' => ['s5' => ['s6' => '321']]
    4.     , 's44' => ['s5' => ['s6' => '321']]
    5.     , 's54' => ['s5' => ['s6' => '321']]
    6.     , 's64' => ['s5' => ['s6' => '321']]
    7.     , 's74' => ['s5' => ['s6' => '321']]
    8.     , 's84' => ['s5' => ['s6' => '321']]
    9.     , 's94' => ['s5' => ['s6' => '321']]
    10.     , 's04' => ['s5' => ['s6' => '321']]
    11.     , 's114' => ['s5' => ['s6' => '321']]
    12.     , 's124' => ['s5' => ['s6' => '321']]
    13.     , 's134' => ['s5' => ['s6' => '321']]
    14.     , 's144' => ['s5' => ['s6' => '321']]
    15.     , 's154' => ['s5' => ['s6' => '321']]
    16.     , 's164' => ['s5' => ['s6' => '321']]
    17.     , 's14' => ['s5' => ['s6' => '321']]
    18.     , 's194' => ['s5' => ['s6' => '321']]
    19.     , 's104' => ['s5' => ['s6' => '321']]
    20.     , 's1234' => ['s5' => ['s6' => '321']]
    21.     , 's324' => ['s5' => ['s6' => '321']]
    22.     , 's414' => ['s5' => ['s6' => '321']]
    23.     , 's2354' => ['s5' => ['s6' => '321']]
    24.     , 's634' => ['s5' => ['s6' => '321']]
    25.     , 's224' => ['s5' => ['s6' => '321']]
    26. ];
    Прогнал все это тысячу раз.

    Результаты тестов:
    На не индусятину ушло 0.0313119888 сек.
    Расход памяти, 'Не индусятина': 584 байт

    На индусятину ушло 0.1418280602 сек.
    Расход памяти, 'Индусятина': 144 байт

    Предварительные выводы: индусскиое решение в 4 раза экономнее по памяти, чем цикл с рекурсией, что, в общем, логично, ибо рекурсия любит похавать, ведь между вызовами накапливаются дубликаты данных и контексты вызова надо где-то хранить, но, в то же время, цикл с рекурсией отрабатывает в те же 4 раза быстрее, чем индусское решение.

    По-своему классика.
    --- Добавлено ---
    Прогон 10к раз:

    На не индусятину ушло 0.1927959919 сек.
    Расход памяти, 'Не индусятина': 584 байт

    На индусятину ушло 1.1899449825 сек.
    Расход памяти, 'Индусятина': 144 байт

    Затраты по памяти неизменны, затраты по времени выросли и стали отличаться примерно в 6 раз в пользу цикла с рекурсией.
     
  20. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Чуть углубил массив:
    PHP:
    1. $arr = ['s1' => ['s2' => ['s3' => ['s8' => '123']]]
    2.     , 's24' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    3.     , 's34' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    4.     , 's44' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    5.     , 's54' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    6.     , 's64' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    7.     , 's74' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    8.     , 's84' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    9.     , 's94' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    10.     , 's04' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    11.     , 's114' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    12.     , 's124' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    13.     , 's134' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    14.     , 's144' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    15.     , 's154' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    16.     , 's164' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    17.     , 's14' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    18.     , 's194' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    19.     , 's104' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    20.     , 's1234' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    21.     , 's324' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    22.     , 's414' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    23.     , 's2354' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    24.     , 's634' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    25.     , 's224' => ['s5' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => ['s6' => '321']]]]]]]]]]]]
    26. ];
    При этом первый элемент остался коротким.
    Соответственно, поменялся код вызовов:

    PHP:
    1. for ($i = 0; $i < 1000; $i++) {
    2.     getElementByPath_no_indus($arr, 's1.s2.s3.s8'); // Короткий элемент
    3.     getElementByPath_no_indus($arr, 's1234.s5.s6.s6.s6.s6.s6.s6.s6.s6.s6.s6.s6'); // Длинный элемент
    4.     getElementByPath_no_indus($arr, 's4.s5.s6.s555'); // Несуществующий элемент
    5. }
    6.  
    7. for ($i = 0; $i < 1000; $i++) {
    8.     getElementByPath($arr, 's1.s2.s3.s8'); // Короткий элемент
    9.     getElementByPath($arr, 's1234.s5.s6.s6.s6.s6.s6.s6.s6.s6.s6.s6.s6'); // Длинный элемент
    10.     getElementByPath($arr, 's4.s5.s6.s555'); // Несуществующий элемент
    11. }
    Результаты на 1к проходов:
    На не индусятину ушло 0.0397579670 сек.
    Расход памяти, 'Не индусятина': 584 байт

    На индусятину ушло 0.2034401894 сек.
    Расход памяти, 'Индусятина': 144 байт

    Расходы по памяти вообще не изменились в абсолютном выражении и все так же 4 к одному в относительном в пользу индусятины. Расходы по времени в среднем расходятся в 5 раз в пользу цикла с рекурсией.

    Результаты на 10к проходов:
    На не индусятину ушло 0.3209419250 сек.
    Расход памяти, 'Не индусятина': 584 байт

    На индусятину ушло 2.0017540455 сек.
    Расход памяти, 'Индусятина': 144 байт

    По памяти без изменений, по времени 6-кратное превосходство рекурсии как и ранее. При этом в абсолютном выражении время, относительно тестов с "коротким" деревом, выросло работы примерно в полтора раза в обоих случаях.

    xdebug и opcache отключены. Откуда такая постоянность в расходе памяти - не знаю. Мб какая-то внутренняя оптимизация пыха. Версия php - 5.6.
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Если по ссылке передавать и пхп 7?
     
  22. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Предварительный итог: Покуда процессорное время дороже памяти, циклы и рекурсия рулят.
    --- Добавлено ---
    пхп 7 у меня не стоит на локальном сервере, боевой тоже пока не мигрировал, а ради этого говнища - не хочу заморачиваться.
    Передача по ссылке в рекурсии экономит 1-2% времени, и никак не влияет на память. Да и по времени отклонения, возможно не более чем погрешность. Какая-то оптимизация в этом плане там явно ощущается. Возможно, при вызове, все параметры неявно передаются по ссылке, а, например при изменении параметра в теле функции идет проверка, мол, если не было указано передавать явно по ссылке, то значение копируется, если было, то нет.
     
  23. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  24. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    А разве array_walk не считается за цикл?
     
    runcore нравится это.
  25. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Какой такой цикл? В документации php в разделе "циклы" есть for, foreach, while и, прстигспди, do..while. Никаких array_walk() там нет. По логике работы, оно, конечно, делает перебор, но циклом не является.
    Мб вечером гляну. Но сдаетс я мне, что изменения будут только в абсолютных величинах, в относительных же мало что поменяется. Хотя, поглядев в свое воспаленное поделие, я увидел, где можно докинуть немного индусской оптимизации.