Beispiel #1
0
 public static function columnSounds($array, $field, $value, $substitutions = array(), $acceptance = 0.35)
 {
     foreach ((array) $array as $key => $row) {
         if (isset($row[$field]) && is_string($row[$field])) {
             if (empty($substitutions)) {
                 $original = $row[$field];
                 $string = $value;
             } else {
                 $original = strval(str_replace(array_keys($substitutions), $substitutions, $row[$field]));
                 $string = strval(str_replace(array_keys($substitutions), $substitutions, $value));
             }
             $strlen = strlen($original) < strlen($string) ? strlen($original) : strlen($string);
             $acceptable = round($strlen * $acceptance);
             $levenshtein = SERVER::levenshtein($original, $string);
             if ($levenshtein <= $acceptable) {
                 $list[$levenshtein][$key] = $key;
             }
         }
     }
     if (!empty($list)) {
         ksort($list);
         self::loopedFlatten($list, 2, $flattened);
         return array_combine($flattened, $flattened);
     }
 }