Не хочется быть говно кодером...
Пишу парсер прайс-листа .csv файла через fgetcsv.
Сам прайс - это около 13к строк и 15 колонок.
Перед тем как занести данные в базу, я их очищаю от лишний спецсимволов, пробелов и прочего мусора.
Параллельно на основе некоторых колонок формирую еще данные (чистый артикул, цена в валюте и прочее). Грубо говоря, скрипт импорта выполняет всю "грязную" работу, а сама CMS использует готовые данные.
Все было хорошо, пока не потребовалось распарсивать артикул товара.
В прайс листе присутствует одна конкретная категория. Но сам товар можно раскидать по другим фильтрам, например "красный шар для правши" имеет категорию "форма - шар".
Но в артикуле есть дополнительная информация, конкретно меня интересуют "2,3,4" символы.
Беру я их незамысловато
$artikul[1].$artikul[2].$artikul[3]
Затем сравниваю через switch case и прописываю русское название
switch ($artikul[1].$artikul[2].$artikul[3])
{
case "001" : $data = "Группа 001"; break;
case "002" : $data = "Группа 002"; break;
default : $data = ""; break;
}
Артикул проставлен у конкретного поставщика (всего их около 5-7), и естественно идет предварительная проверка. Если нужный производитель, парсим артикул.
42 секунды с switch
35 секунды без switch
Тонкое место именно "switch case", а "else if" усугубляет ситуацию совсем