• Как перебрать элементы первого массива на вхождение во втором массиве на php?

    0xD34F
    @0xD34F
    array_intersect($arr, array_map(fn($n) => $n['PROPERTY_112']['value'], $result))
    Ответ написан
    Комментировать
  • Как разбить массив ссылок php на блоки по первой букве заголовка ссылки?

    не совсем понятно что значит "[name] - это ссылки.".
    но вообще как-то так.

    $cities = array(...);
    $cities_with_letters = array();
    foreach ($cities as $city) {
      $letter = substr($city['name'], 0, 1);
      $cities_with_letters[$letter][] = $city;
    }
    Ответ написан
    Комментировать
  • Bitrix передаю в фильтре массив ID но на выходе компанента другая сортировка - почему?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Что бы сортировать по массиву ID:
    "ELEMENT_SORT_FIELD" => "ID",
    "ELEMENT_SORT_ORDER" => $arElements,

    В компоненте данную сортировку можно использовать с обновления 18.6.900 для iblock
    Ответ написан
    Комментировать
  • Как включить дискретную видеокарту на ноутбуке без использования монитора?

    @Set3007 Автор вопроса
    Заходим в Windows,включаем экранного диктора (win+enter),затем нажимаем win+r,набираем devmgmt.msc,жмем enter,затем Tab,далее на клавиатуре нажимаем клавишу вниз (слушая экранного диктора) пока он не скажет"видеоадаптеры"(у меня это шесть раз клавиша вниз),потом левый alt,один раз вправо,Enter,три раза вниз,Enter и ещё раз Enter и да будет свет!
    Ответ написан
    1 комментарий
  • Как монетизировать сервер / Не уходить в минус?

    Есть hetzner с серваками по 39 евро.
    Домашний сервер в Германии никак не сможешь монетизировать
    Ответ написан
    4 комментария
  • Как массово применить адреса у картинок из дата атрибута?

    @zkrvndm
    Софт для автоматизации
    Выведите на нужных страницах скрипт:
    <script type="text/javascript">
    	document.addEventListener('DOMContentLoaded', function() {
    		var img = document.querySelectorAll('img[data-href]');
    		for (var n = 0; n < img.length; n++) {
    			var attr = img[n].getAttribute('data-href');
    			img[n].setAttribute('src', attr);
    		}
    	});
    </script>

    Библиотека jQuery не требуется, будет работать и без него. При желании, событие DOMContentLoaded вы можете заменить просто на load, если вдруг вам сначала надо дождаться полной загрузки стилей, скриптов и тех картинок, что не имеют заглушки. Разница между ними в том, что при DOMContentLoaded авто замена атрибутов отработает сразу, как только документ будет загружен и готов к работе, а в случае load будет дополнительная небольшая задержка, пока другие внешние ресурсы не прогрузятся (стили, скрипты и обычные картинки).
    Ответ написан
    Комментировать
  • Как сделать сортировку по текстовому полю и вхождению подстроки?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    SELECT * FROM goods 
      ORDER BY CASE WHEN [с определенными вхождениям] THEN 0 ELSE 1 END, description
    Ответ написан
    2 комментария
  • Почему выдает такую ошибку?

    Flashter
    @Flashter
    Учусь программировать
    Наиболее частой причиной ошибки 500 (Internal Server Error, внутренняя ошибка сервера) является неверный синтаксис файла .htaccess или наличие в нем неподдерживаемых директив. Чаще всего достаточно комментировать директиву Options (для этого нужно поставить в начале строки решетку — #), и проблема исчезнет.
    Ответ написан
    2 комментария
  • Чем можно сделать отладку сайта который ломается в Safari?

    @iordania
    скачать браузер сафари под винду пробовали ? а в целом ваш вопрос легко гуглится.
    Ответ написан
    5 комментариев
  • Как хранить характеристики товаров в БД и делать поиск по ним?

    @dimoff66
    Кратко о себе: Я есть
    Характеристики относятся к товарам? То есть у одного товара только один набор характеристик или один товар может приходить и продаваться с разными наборами характеристик, например кроссовки адидас, цвет: Белый, размер: 37 и кроссовки адидас, цвет: Синий, размер: 39. Если второй, более сложный случай, то делаем следующие таблицы

    1) Таблица Properties (id, name, valueType) - здесь просто храним список возможных свойств
    2) Таблица PropertyValues (id, propertyId, value) - здесь храним возможные варианты значений для свойств, у которых не простой тип, то есть не строка, не число, не булево, не дата
    3) CharacteristicsSet (id, productId, name) - здесь будет храниться набор свойств для конкретной позиции товара на складе, name будет составляться автоматически как строка из свойств и их значений, указанных для позиции товара
    4) CharacteristicsValues (chartacteristicSetId, propertyId, valueType, value) - здесь будут храниться значения свойств для конкретной характеристики.

    Например нам пришли партии кроссовок со свойствами цвет: белый, размер: 37й и цвет: синий, размер: 39й. (например 100 и 50 штук соответственно)

    Тогда наши таблицы будут выглядеть следующим образом:

    Properties:
    id: 1, property: 'Цвет', valueType: 'set'
    id: 2, property: 'Размер', valueType: 'number'

    PropertyValues:
    id: 1, propertyId: 1, value: 'Белый'
    id: 2, propertyId: 1, value: 'Красный'
    id: 3, propertyId: 1, value: 'Синий'

    CharacteristicsSet:
    id: 1, productId: 777, name: 'Цвет: белый, размер: 37'
    id: 2, productId: 777, name: 'Цвет: синий, размер: 39'

    CharacteristicsValues
    chartacteristicSetId: 1, propertyId: 1, valueType: set, value: 1(ссылка на белый цвет)
    chartacteristicSetId: 1, propertyId: 2, valueType: number, value: 37
    chartacteristicSetId: 2, propertyId: 1, valueType: set, value: 2(ссылка на синий цвет)
    chartacteristicSetId: 2, propertyId: 2, valueType: number, value: 39

    Ну и в таблице склада можно будет хранить записи в виде:
    productId: 777, characteristicsSetId: 1, quantity: 100
    productId: 777, characteristicsSetId: 2, quantity: 50

    Если же различный набор свойств для одного товара нам не нужен, то все то же самое, но обходимся без таблицы CharacteristicsSet: а в CharacteristicsValues ссылаемся на сам товар. Соответственно весь поиск будет проходить по одной таблице CharacteristicsValues с индексированными полями. Например чтобы найти любые товары с цветом Белый, мы делаем поиск

    select * from CharacteristicsValues where propertyId = 1 and value = 1


    ну и с соответствующим соединениям по таблицам характеристик и(или) товаров
    Ответ написан
    Комментировать
  • Как можно исправить правило ЧПУ в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    дайте мне две строки которые было стало, поскольку вы сделали ошибку в самом начале
    GET не является частью строки, че вы ее пытаетесь выделить?
    # 301 --- http://www.test.com/product/333 => http://www.test.com/index.php?page=product&item=888
    RewriteRule ^product/333$ /index.php\?page=product&item=888 [L,R=301]


    А вот если у вас гет в изначальной строке то так
    # 301 --- http://www.test.com/?page=333 => http://www.test.com/index.php?page=product&item=888
    RewriteCond %{QUERY_STRING} (^|&)page\=333($|&)
    RewriteRule ^$ /index.php?page=product&item=888 [L,R=301]

    Все что остается это заменить 333 на регулярк и сгрупировать ее

    # 301 --- http://www.test.com/?page=333 => http://www.test.com/index.php?page=product&item=888
    RewriteCond %{QUERY_STRING} (^|&)page\=([0-9]{1,})($|&)
    RewriteRule ^$ /index.php\?page=product&item=%2 [L,R=301]


    где %2 аналог $2 но из RewriteCond
    Но обычно этим занимается php
    Ответ написан
    Комментировать
  • Разработка посредника/агрегатора?

    hack504
    @hack504
    Обычно для таких проектов сначала делается пилот (на коленке собирают сайт с минимальным функционалам и отрабатывают кейсы). Потом с этим пилотом носятся по клиентам и собирают требования рынка. А вот уже потом, когда все цифры и кейсы определены, можно уже приступать к Архитектуре и пилить продакшен.

    Но меня волнует не это, а то откуда я буду брать инфу о кол-ве уже реализованного товара, его наименовании и прочего.

    Этот же вопрос и будет интересовать клиентов.
    Ответ написан
    Комментировать
  • Как удалить из массива все однокоренные слова?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    function clearBySixFirstLetter($array) 
    {
        $has = [];
        
        return array_filter(
            $array,
            function ($word) use (&$has) {
                $sixLetters = mb_substr($word, 0, 6);
                
                if (!in_array($sixLetters, $has)) {
                    array_push($has, $sixLetters);
                    return true;
                }
                
                return false;
            }
        );
    }
    
    clearBySixFirstLetter([
        'панель',
        'пенал',
        'перелив',
        'подвесная',
        'подвесного',
        'подвесное',
        'подвесной',   
    ]);
    
    /*
    Array
    (
        [0] => панель
        [1] => пенал
        [2] => перелив
        [3] => подвесная
    )
    */
    Ответ написан
    3 комментария
  • Как удалить все значения множественного свойства?

    @Diversia Автор вопроса
    Правильнее оказалось так:
    $arFile["MODULE_ID"] = "iblock";
    $arFile["del"] = "Y";
    $PROP['morePhotos'][id варианта] = $arFile;
    Ответ написан
    Комментировать
  • Как называется таблица в бд Битрикса?

    Название таблицы указывается в настройках HL блока.
    Ответ написан
    Комментировать
  • Как удалить у ссылки на файла - гет параметр?

    Urvin
    @Urvin
    Возможно этот параметр - ключ для генерации thumbnail при отсутствии такого размера в кеше. Может статься так, что если удалите ключ, то и картинку не получите. Иначе я не знаю, зачем нужна, например метка времени картинке.
    Будьте внимательны.

    А вообще, например, так:
    function dropUrlQuery(string $url = ''): string
    {
        $position = strpos($url, '?');
        if($position) {
            $url = substr($url, 0, $position);
        }
        return $url;
    }
    Ответ написан
    4 комментария
  • Как в Битриксе сортировать категории по кол-ву элементов в них?

    summoner2015
    @summoner2015
    Backend всему голова
    Добрый вечер. Вот тут есть подсказка - https://dev.1c-bitrix.ru/api_help/iblock/classes/c...

    arOrder - element_cnt (количество элементов в разделе, работает только если bIncCnt = true)
    Ответ написан
    Комментировать
  • Можно ли мигрировать с mysql на mariadb?

    @Fixid
    Можно.
    Не трудно. Остановить службу, сделать резервную копию /etc/mysql и /var/lib/mysql
    Обновить пакет, если это Ubuntu, то он при обновлении mysql-server сам предложит mariadb
    Запустить службу, остальное произойдет автоматически.
    При сильно большой разнице в версиях возможно придется подправить my.cnf
    Ответ написан
    Комментировать
  • Можно ли мигрировать с mysql на mariadb?

    DevMan
    @DevMan
    обычно миграция проходит гладко и прозрачно.
    Ответ написан
    Комментировать
  • Как на php изменить формат даты?

    dark1112
    @dark1112
    Web developer
    Это формат ISO 8601.

    $date = new \DateTime('2018-12-28T00:00:00');
    echo $date->format('d/m/Y H:i:s'); // 28/12/2018 00:00:00
    Ответ написан
    Комментировать