За последние 24 часа нас посетили 27082 программиста и 1484 робота. Сейчас ищут 928 программистов ...

как правильно выполнить схождение Двух массивов

Тема в разделе "PHP для новичков", создана пользователем AlexsaiL, 5 фев 2018.

  1. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    Подскажите как правильно выполнить схождение полученного POST массива? сравнив с Именами столбцов таблицы БД и выбрать только нужные пары ключ=>значение у которых Ключ совпадает с Именем столбца выбранной таблицы в БД.
    У меня приходит POST массив:
    PHP:
    1. (
    2.     [R1] => 'текст1........'
    3.     [R2] => 'Текст2 .......'
    4.     [NAME] => 'Иван'
    5. )
    К примеру в таблице БД присутсвует имя столбца NAME, и R2, с помощью sql -выражения:
    PHP:
    1. $sql = 'SHOW COLUMNS FROM  `obj_'.$id_obj.'`';
    2. $rs = mysql_query($sql);
    3. while($columns_r[$i] = mysql_fetch_assoc($rs)){
    4. $name_columns[$i] = $columns_r[$i]['Field'];
    5. }
    Получаю Имена всех столбцов таблицы:
    PHP:
    1. id
    2. R2
    3. NAME
    4. picture
    5. comments
    подскажите как правильно использовать array_intersect_assoc или другой метод чтобы сравнить два массива первый POST массив (с ключами и значением) Второй массив с именами столбцов БД,
    в Бд нужно записать только те значения из POST массива у которых ключи совпадают с именами столбцов выбранной таблицы БД.
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Обходишь полученный массив столбцов БД
    PHP:
    1. foreach ($name_columns as $k => $v)
    2. {
    3.      if (isset($array[$v]))
    4.     {
    5.          // тут собираешь запрос в БД
    6.      }
    7. }
     
  3. voral

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

    С нами с:
    30 ноя 2017
    Сообщения:
    646
    Симпатии:
    104
    второй вариант (Недавно только отвечал на подобное)
    array_flip - в массиве имен столбцов меняете индексы и значения местами (имена столбцов становятся индексами)
    потом array_intersect_key
     
    AlexsaiL нравится это.
  4. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    благодарю за ответ, уже решил таким же образом задачу!:) Но понял что действовал верно)