За последние 24 часа нас посетили 57097 программистов и 1572 робота. Сейчас ищут 1413 программистов ...

перебрать массивы и сравнить или выбрать из базы по условию

Тема в разделе "PHP для новичков", создана пользователем rewuxiin, 23 дек 2014.

  1. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    когда-то на курсах по php препод уверял что лучше не базу данных запросами, а выгрузить массив и разобрать.

    вот сейчас я имею на выходе 3 многомерных массива с записями типа
    Код (Text):
    1.  
    2. Array
    3. (
    4.     [0] => Array
    5.         (
    6.             [id_product] => 7360
    7.         )
    8.  
    9.     [1] => Array
    10.         (
    11.             [id_product] => 7385
    12.         )
    13.  
    14.     [2] => Array
    15.         (
    16.             [id_product] => 7386
    17.         )
    количество записей в каждом более 1000 и будет только расти, в третьем массиве уже даже 3000
    мне необходимо получить уникальные значения [id_product] всех трех массивов.

    так что же лучше, перебирать массивы или вместо этого запроса всех ид товаров с которыми связаны значения
    id_feature и $row['id_feature_value']
    Код (Text):
    1.  
    2. $idProduct = Db::getInstance()->executeS(
    3.                     'SELECT `id_product` FROM `' . _DB_PREFIX_ . 'feature_product` WHERE `id_feature` = ' . (int) $idFeature . ' AND `id_feature_value` = ' . (int) $row['id_feature_value']
    4.             );
    сделать перебор первого массива с ид товаров и выбрать из базы с дополнительным условием?

    Код (Text):
    1. foreach($первый_массив_с_ид_товаров as $id_товаров){
    2. $idProduct = Db::getInstance()->executeS(
    3.                     'SELECT `id_product` FROM `' . _DB_PREFIX_ . 'feature_product` WHERE `id_feature` = ' . (int) $idFeature . ' AND `id_feature_value` = ' . (int) $row['id_feature_value']. ' AND `id_product` = ' . (int) $id_товаров['id_product']
    4.             );
    5. }
     
  2. denis01

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

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

    Выборка без повторений mysql distinct
     
  3. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    Re: перебрать массивы и сравнить или выбрать из базы по усло

    спасибо, положусь на ваш опыт.