• Как найти часть массива в массивах?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    так как искомый массив не совпадает с массивами в списке, то он и не находится.
    Вам нужно перебором вашего $arr напрямую проверять, не нашёлся ли нужный.
    foreach ($arr as $i => $a) {
      if ($needle['Alias']==$a['Alias'] && $needle['Parent']==$a['Parent']) {
        // $a - ваш искомый подмассив
        doSomething($a);
        break;
      }
    }

    Если в массиве-списке может быть несколько совпадений, то убрать команду break;
    Ответ написан
    Комментировать
  • Как найти часть массива в массивах?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    $search = array_filter($arr, function (array $item) use ($needle) {
        foreach($needle as $key => $value) {
            if (!isset($item[$key]) || $item[$key] !== $value) {
                 return false;
            }
        }
    
        return true;
    }


    И еще вариантик....

    $search = array_filter($arr, function (array $item) use ($needle) {
         return $needle == array_intersect_key($item, $needle);
    }


    и еще один... если вам надо индекс найти... это же и для in_array будет работать если вам нужно только проверить.
    $search = array_search($needle, array_map(function (array $item) use ($needle) {
        return array_intersect_keys($item, $needle);
    }, $arr, false),


    Обновил код, перепутал местами аргументы для array_intersect_key.

    Добавляю быструю реализацию. Быстрее выше перечисленных (кроме первой) раз в 6.
    $search = [];
    foreach ($arr as $item) {
        if ($needle == array_intersect_key($item, $needle)) {
            $search[] = $item;
        }
    }
    Ответ написан
    9 комментариев
  • Как реализовать адаптивное размытие фона (responsive blur)?

    Lisonok
    @Lisonok
    Создайте filter.svg
    <?xml version="1.0" standalone="no"?>
    <svg width="1" height="1" version="1.1"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink">
      <defs>
        <filter id="blur">
          <feGaussianBlur in="SourceGraphic" stdDeviation="2 2" />
        </filter>
      </defs>
    </svg>

    Блоку добавьте стили
    .block{
        filter: url(filter.svg#blur); /* FF, IE10 & Opera */
       -webkit-filter: blur(2px); /* Chrome */
    }

    для ie8 добавьте
    filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2); /* IE8 */
    Ответ написан
    1 комментарий
  • Для чего пишут LIMIT в UPDATE?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    LIMIT имеет смысл только в сочетании с ORDER BY. Например, выдать конфетку трем победителям:
    UPDATE users SET candy=candy+1 ORDER BY score DESC LIMIT 3
    Ответ написан
    Комментировать
  • Что больше "весит" - enum с двумя вариантами значений или tinyint(1)?

    ENUM('Значение1', 'Значение2') - 1 байт памяти, если не превышает 256 значений.
    TINYINT - 1 байт памяти (и не важно это будет 0 или 1).
    Ответ написан
    2 комментария
  • Как продумать логику тестов на php в yii?

    fornit1917
    @fornit1917
    как сверять выбранный вариант

    Оператором ===
    Ответ написан
    Комментировать
  • Как на сервере проверить, что ajax запрос с нашего сервера?

    @neol
    Простейший вариант будет выглядеть как-то так:
    if(strpos($_SERVER['HTTP_REFERER'], 'http://mydomain.ru/') === false) {
        exit('Ты кто такой? Давай до свиданья!');
    }

    Этого достаточно чтобы "всякие там не шлялись".

    Более сложные методы можно нагуглить по ключевому слову CSRF.
    Ответ написан
    Комментировать
  • Как заменить стандартные модальные окна?

    madmages
    @madmages
    Человек прямоходящий
    alert это по сути системное сообщение. хочешь нестандартное то делай свои модальные окошка на дивах с css блекджеком и прочими
    Ответ написан
    Комментировать
  • Как заменить стандартные модальные окна?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Стилями нет, можете вместо них использовать разнообразные JavaScript плагины.
    Ответ написан
    Комментировать
  • Таблица html в модальном окне?

    @IceJOKER
    Web/Android developer
    $('#idForTableWhichWeWantToShow').dialog();
    Ответ написан
    Комментировать
  • Каков план личностного развития PHP программиста с нуля?

    konst20
    @konst20
    Программист, преподаватель, немного электронщик
    Есть опыт помощи таким начинающим.
    реальный срок до запуска джуниора - полгода, никого не слушайте.

    Важные моменты
    веб-программирование на базе PHP - это стек технологий: PHP/SQL/CSS/HTML/JS + Linux хотя бы азы + знание важных инструментариев (FTP, Git/SVN, работа с БД)
    чистый PHP плюс даже все перечисленное выше - не особо нужно и не интересно. Нужно знание конкретных платформ: фреймворков и/или CMS. (Почитайте вакансии на Хантиме по запросу PHP, обратите на это внимание). Навскидку самые востребованные (спорно конечно): Yii фреймворк, CMS Битрикс и Wordpress.

    Как начать?
    Смело на амбразуру!
    1) Установите у себя рабочую среду LAMP/WAMP - Apache, PHP, MySQL. Для этого возьмите пакет Denwer или OpenServer, что больше понравится. Сделайте Hello World просто как HTML, потом на PHP, потом алертом на JS. Порадуйтесь.
    Установите все редакторы кода. Кто там вам будет рекомендовать блокнот или notepad++ - не слушайте. Варианты: если машина мощная (4+ Гб памяти и пр.), берите редактор phpStorm (для php/html/css/js). Если не очень мощная - берите komodo edit. Для работы с БД инструмент встроен в Denwer/OpenServer, это phpMyAdmin
    2) Идеально, если вы договоритесь сделать кому-нибудь сайт. Бесплатно или за небольшую плату. Если нет - сами себе поставьте задачу: сайт про котиков/про детей etc. Красивый сайт, с галереей, с эффектами, с материалами
    Возьмите CMS Wordpress и попытайтесь сделать сайт у себя на компьтере. Настоящий сайт, во всей красе, как вы хотите. Правьте его, смотрите код, экспериментируйте. Сообщество огромное, вы найдете ответы на все свои вопросы
    Потратьте чуть денег, купите себе домен и хостинг, залейте сайт на хостинг.
    Порадуйтесь. Похвастайтесь.
    3) Ищите в сети тестовые задачи и решайте их, изучайте материалы собеседований, вопросы - их много.
    4) Зарегистрируйтесь на odesk.com под каким-то фейковым email, пройдите тесты по PHP, CSS, HTML, jQuery, Wordpress, а во время прохождения делайте скриншоты вопросов. Потом изучайте эти вопросы, ищите ответы, далеко не обязательно на все. Тесты вы, конечно, не пройдете, но вам нужны только вопросы.
    5) Постоянно следите за вакансиями "PHP-программист", "веб-программист" на Хантиме, на hh.ru и подобных ресурсах.

    И да, как только напишете первую строку кода - начните читать про Git. Как будете готовы - сразу внедрите у себя Git, вы будете очарованы его возможностями.

    Вот как раз на полгода.
    После этого у вас появится масса информации, и дальше вы сами сориентируетесь.
    Ответ написан
    11 комментариев
  • Помогите с php mail() headers кодировкой, пожалуйста

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Собственно, интересны переносы — оберните в <source ></source>
    Да и адрес отправителя надо указать…
    From: =?windows-1251?B?x+D/4uroIO3gIOLo5+jy6ug=?= <admin@test.com>
    Ответ написан
    Комментировать
  • Apache, NGINX, PHP-FPM - что лучше?

    zizop
    @zizop
    Наши тесты показали значительное ускорение при nginx +php5-fpm по сравнению с apache+mod_php. Пора уже использовать прогрессивные технологии, а не ставить по старинке Apache. Вот наш рецепт:
    — собственно nginx+php5-fpm
    — apc для локального кэша, memcached для сетевого
    — бд Percona XtraDB, потом перешли на MariaDB+XtraDB
    — ssd для оси, выключить журналирование, включить trim
    — ежедневный backup на hdd, недельный через сеть.
    В общем данные мероприятия существенно увеличили производительность.
    Ответ написан
    3 комментария