diff --git a/backend/controllers/ParserController.php b/backend/controllers/ParserController.php index 916749e..afabb24 100644 --- a/backend/controllers/ParserController.php +++ b/backend/controllers/ParserController.php @@ -175,11 +175,10 @@ class ParserController extends BaseController } else { throw new \ErrorException('Ошибка кеша'); } - CustomVarDamp::dumpAndDie($data); // соотнесем отпарсенные данные с соответсивем полученным от пользователя // для этого преобразуем массив отпарсенных данных - назначим ключи согласно соответствию - $data = \Yii::$app->multiparser->convertToAssocArray($data, $arr, 'attr_'); + $data = \Yii::$app->multiparser->convertToAssocArray($data, $arr , 'attr_'); // запустим специальный класс который запишет данные в таблицы связанные с прайсами $writer = new PriceWriter(); diff --git a/common/components/parsers/CustomConverter.php b/common/components/parsers/CustomConverter.php index fa1e171..4b2a084 100644 --- a/common/components/parsers/CustomConverter.php +++ b/common/components/parsers/CustomConverter.php @@ -15,14 +15,18 @@ class CustomConverter extends Converter { { // очистка служебного префикса в массиве заголовков if ($key_prefix) { - array_walk( $key_array, function ( &$value, $key, $key_prefix ){ return str_replace( $key_prefix, '',$value ); }, $key_prefix ); + // @todo оптимизировать - два переворота массива - избыточно + $key_array = array_flip( $key_array ); + + array_walk( $key_array, function ( &$value, $key, $key_prefix ){ $value = str_replace( $key_prefix, '',$value ); }, $key_prefix ); + + $key_array = array_flip( $key_array ); //уберем пустые элементы $key_array = array_filter($key_array, function ($value){ return $value !==''; }); } - array_walk( $value_arr, - function ( &$value, $key, $key_array) { + function ( &$value, $key, $key_array ) { $res = $value; foreach ($res as $sub_key => $sub_value) { if (isset($key_array[$sub_key])) { -- libgit2 0.21.4