День добрый!
Сейчас решаю задачу по сопоставлению(сличению) данных и хотел бы уточнить, верное ли решение или нет?
1) На входе есть строка с названиями лекарства, типа:
$dtug = "НУРОФЕН 12+ ТАБ. П/О 200МГ №12 РЕКИТТ БЕНКИЗЕР ХЕЛСКЭР ИНТЕР";
2) Есть json с объектами лекарств, типа:
{
"drugId": 69615,
"drugName": "Нурофен плюс тб плен/об бл N12x1 Рекитт Бенкизер Хелскэр Инт ВБР",
"checkDate": "2015-10-09T16:36:03.505+03:00",
"invalid": 0
},
{
"drugId": 69624,
"drugName": "Нурофен форте тб п/о 400мг бл N12x1 Рекитт Бенкизер Хелскэр Инт ВБР",
"checkDate": "2019-05-14T14:54:46.32+03:00",
"invalid": 0
},
{
"drugId": 73359,
"drugName": "Нурофен для детей сусп внутрь апельс вкус 100мг/5мл фл с доз шприц 100мл N1x1 Рекитт Бенкизер Хелскэр ВБР",
"checkDate": "2018-03-12T15:01:28.192+03:00",
"invalid": 0
},
{
"drugId": 74546,
"drugName": "Нурофен для детей сусп внутрь клубн вкус 100мг/5мл фл 100мл N1x1 Рекитт Бенкизер Хелскэр Инт ВБР",
"checkDate": "2009-10-14T00:00:00+04:00",
"invalid": 0
}
Нужно начальную строку сопоставить с json и найти более точное совпадение(по примеру это drugId: 69615).
Как я делаю сейчас,
1) входящую строку разбиваю на массив.
2) перебираю json и каждое название лекарства преобразую в массив
3) сравниваю перебором массив входящей строки с массивом первого объекта json, потом второго и т.д..
4) при сравнении массивов из пункта 3, формирую новый массив и записываю туда процент и id лекарства из json, типа:
$cpr = [
[
'%' => 35,
'drugID' => 1111
],
[
'%' => 75,
'drugID' => 69615
],
];
Терзают меня постоянно сомнения в правильности данного решения.
Возможно есть более элегантный и быстрый способ сопоставления?
Буду признателен!