Перенос данных из одного массива в другой и сложное условие

92
11 марта 2021, 22:00

Суть: переносил сайт с одной CMS на другую (с самописной на Modx). Спустя некоторое время, потребовалось доперенести некоторые данные.Мой алгоритм: строю запросы с выборкой по необходимым полям, получаю 2 массива из двух баз(1. откуда переносим; 2. Куда переносим), переношу данные из первого массива во второй по полю url. Массив из которого переносим имеет такой вид:

  array(5) {
    ["id"] => "837"
    ["alias"] => "1-os"
    ["val_text"] => "Текст который необходимо перенести"
   }

Массив, в который нужно перенести имеет такой вид:

  array(2) {
    ["id"] => "3531"
    ["alias"] => "1-os"
    ["val_text"] => "Сюда нужно поместить переносимый текст"
  }

По сути, каждый массив - это данные для страницы (будь то товар или статья), таких массивов много, айдишники там и там разные (в modx были сгенерированы новые), поэтому единственный критерий переноса - alias. Еще нюанс в том, что все эти поля находятся в разных таблицах, поэтому я счел целесообразным составить отдельные запросы на выборку, а потом с помощью php это объединить

Вопрос: как вообще это можно осуществить? Смотрел различные функции типа array_replace или просто через $array1 + $array2 - не подходит. Может быть это вообще можно сделать через SQL?

Answer 1

В общем, я не хотел использовать этот метод - думал, что это затраты по ресурсам и есть более элегантное решение, но тем не менее, отработал он быстро и точно:

foreach($resources2 as $k => $v) {
    foreach($resources as $res) {
        if($res['alias'] == $v['alias']) {
            $resources2[$k]['inform'] = $res['inform'];
        }
    }
}

То есть при каждой проверке страницы "нового массива" мы будем проходить по всем элементам "старого массива" и при совпадении alias переносим инфу...

READ ALSO
Обработка html страницы с данными

Обработка html страницы с данными

Всем добрый вечерПомогите разобраться с такой задачей

78
laravel избежать дублирования при join

laravel избежать дублирования при join

Как избежать дублирования данных при join в laravel?

91
Получить домен из URL

Получить домен из URL

Допустим есть ссылки вида:

98
Замена числа на слово

Замена числа на слово

Допустим имеется переменная $test и в ней хранится число от 1 до 3

102