PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
Copy Clear
Copy Format Clear
<?php $TEST_DATA = 'Продукт 1; Воздуховоды/Прямоугольные/Оцинкованные; Продукт 2; Воздуховоды/Прямоугольные/Оцинкованные; Продукт 3; Воздуховоды/Прямоугольные/Оцинкованные; Продукт 4; Воздуховоды/Круглые/Нержавеющие; Продукт 5; Воздуховоды/Круглые/Нержавеющие; Продукт 6; Воздуховоды/Круглые/Нержавеющие;'; $arData = array_map(function($val) { return array_filter(array_map('trim', explode(';', $val))); }, preg_split('#[\r\n]#isu', $TEST_DATA, -1, PREG_SPLIT_NO_EMPTY)); /* Всё, что выше - к задаче не относится...имитация получения данных из CSV... */ $start = microtime(true); $VAR = false; $VAR2 = false; $arRes = []; for($i = 0; $i <= 1000; $i++) { foreach($arData as $data) { $arCategories = array_filter(array_map('trim', explode('/', $data[1]))); $MAIN_CATEGORY = array_shift($arCategories); if($VAR !== $MAIN_CATEGORY) { $VAR = $MAIN_CATEGORY; //echo $MAIN_CATEGORY."\r\n"; $arRes[] = $MAIN_CATEGORY; } $CATEGORIES = implode('/', $arCategories); if($VAR2 !== $CATEGORIES) { foreach($arCategories as $k => $category) { $k++; //echo str_repeat('!', $k).$category."\r\n"; $arRes[] = str_repeat('!', $k).$category; } $VAR2 = $CATEGORIES; } //echo $data[0].';'.$data[1].';'."\r\n"; $arRes[] = $data[0].';'.$data[1].';'; } } echo 'Время выполнения скрипта: '.round(microtime(true) - $start, 4).' сек.';
Show:  
Copy Clear