protected function getRenamedFieldsMapping(array $potentialNewFields, array $potentialDeletedFields) { $renamedFieldsMapping = array(); if (count($potentialNewFields) && count($potentialDeletedFields)) { $deletedFields = $potentialDeletedFields; foreach ($potentialNewFields as $potentialNewField) { if (!count($potentialDeletedFields)) { break; } // array_values is to reset the keys $potentialRenamedFields = array_values($potentialDeletedFields); $questionChoices = array_merge(array('none of them'), $potentialRenamedFields); // @201004142017 $question = "Please make your choice for answering this question \n"; $question .= "Is {$this->tableName}.{$potentialNewField} a renamed version of:"; $answer = Nextgen_Core_UserInteraction::askQuestionWithChoices($question, $questionChoices); // -1 because of the line @201004142017 if (array_key_exists($answer - 1, $potentialRenamedFields)) { $renamedFieldsMapping[$potentialRenamedFields[$answer - 1]] = $potentialNewField; Nextgen_Utils::removeElementFromArray($potentialRenamedFields[$answer - 1], $potentialDeletedFields); } } } return $renamedFieldsMapping; }
private function getRenamedTablesMapping(array $potentialNewTables, array $potentialDeletedTables) { $renamedTablesMapping = array(); if (count($potentialNewTables) && count($potentialDeletedTables)) { $deletedTables = $potentialDeletedTables; foreach ($potentialNewTables as $potentialNewTable) { if (!count($potentialDeletedTables)) { break; } $potentialRenamedTablesWithScore = array(); foreach ($potentialDeletedTables as $potentialDeletedTable) { $score = $this->db2->getTable($potentialNewTable)->getSimilarityScore($this->db1->getTable($potentialDeletedTable)); $potentialRenamedTablesWithScore[$score] = $potentialDeletedTable; } ksort($potentialRenamedTablesWithScore); $potentialRenamedTablesSorted = array_values($potentialRenamedTablesWithScore); $questionChoices = array_merge(array('none of them'), $potentialRenamedTablesSorted); // @201004142017 $question = "Please make your choice for answering this question \n"; $question .= "Is {$potentialNewTable} a renamed version of:"; $answer = Nextgen_Core_UserInteraction::askQuestionWithChoices($question, $questionChoices); // -1 because of the line @201004142017 if (array_key_exists($answer - 1, $potentialRenamedTablesSorted)) { $renamedTablesMapping[$potentialRenamedTablesSorted[$answer - 1]] = $potentialNewTable; Nextgen_Utils::removeElementFromArray($potentialRenamedTablesSorted[$answer - 1], $potentialDeletedTables); } } } return $renamedTablesMapping; }