$data = $parser->renameKeys($data, $replacements); $data = $parser->repairFragmentsInArray($data); include 'clicktags.php'; $urls = clickTags(); $dataGrouped = $parser->groupBy($data, '#PLACEHOLDER1#'); // rearrange $sectorsData in order to have a hash map from companies names to array of hash maps // of with company's sectors and corresponding adv links $companyToSectors = $parser->groupBy($sectorsData, 'company'); // create well-formed string containing links to the sectors correspondign to each company name $companyToSectorsText = []; foreach ($companyToSectors as $companyName => $arr) { $text = []; $len = count($arr); for ($i = 0; $i < $len; $i++) { $tmp = str_replace('#SECTOR_URL#', $arr[$i]['adv_link'], SINGLE_SECTOR_TEMPLATE); $sectorNameSanitized = $parser->escapeSymbols($arr[$i]['settori']); $sectornameFormatted = ucwords(strtolower($sectorNameSanitized)); $tmp = str_replace('#SECTOR_TEXT#', $sectornameFormatted, $tmp); $text[] = $tmp; } $companyToSectorsText[$companyName] = implode(' – ', $text); } $dataGroupedWithTags = []; foreach ($dataGrouped as $key => $value) { if (!array_key_exists($key, $urls)) { echo "{$key} is not found\n"; } foreach ($value as $index => $data) { $dataGrouped[$key][$index]["#PLACEHOLDER_VIEWTAG#"] = $urls[$key][0]; $dataGrouped[$key][$index]["#PLACEHOLDER_URL#"] = $urls[$key][2]; $dataGrouped[$key][$index]["#PLACEHOLDER_FREE_TICKET#"] = $urls[$key][1];