PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
Copy Clear
Copy Format Clear
<?php <?php $having_arr = ["волк", "волейболк", "восток"]; if (!function_exists('mb_substr_replace')) { function mb_substr_replace($original, $replacement, $position, $length) { $startString = mb_substr($original, 0, $position, 'UTF-8'); $endString = mb_substr($original, $position + $length, mb_strlen($original), 'UTF-8'); $out = $startString . $replacement . $endString; return $out; } } function get_min_str_in_arr($arr) { $str = $arr["0"]; for ($i = count($arr) - 1; $i > 0; $i--) { if (mb_strlen($arr[$i]) <= mb_strlen($str)) { $str = $arr[$i]; }; }; return $str; }; function get_all_pattern($str, $patterns_arr, $max_str_replaced) { if (preg_match_all("/\.\*/iu", $str) == $max_str_replaced) { return $patterns_arr; } for ($i = mb_strlen($str) - 1; $i >= 0; $i--) { if (mb_substr($str, $i, 1, "UTF-8") == "." || mb_substr($str, $i, 1, "UTF-8") == "*") { continue; } $replaced_str = mb_substr_replace($str, ".*", $i, 1); array_push($patterns_arr, $replaced_str); $patterns_arr = get_all_pattern($replaced_str, $patterns_arr, $max_str_replaced); } return get_all_pattern($replaced_str, $patterns_arr, $max_str_replaced); } function clean_pattern($arr) { $arr = array_unique($arr); //Rename key after deleting doubles $cleaned_arr = []; $i = 0; foreach ($arr as $key => $value) { $cleaned_arr[$i] = $arr[$key]; $i++; } return $cleaned_arr; } function find_math($pattern, $str) { return preg_match("/$pattern/iu", $str); }; function is_math_all($maths_arr) { $boolean = 1; for ($i = 0; $i < count($maths_arr); $i++) { $boolean = $boolean * $maths_arr[$i]; } return $boolean; } function find_the_same($having_arr, $patterns_arr) { $almost_end = []; foreach ($patterns_arr as $pattern) { $maths_arr_boolean = []; foreach ($having_arr as $key => $having_str) { array_push($maths_arr_boolean, find_math($pattern, $having_str)); }; if (is_math_all($maths_arr_boolean)) { array_push($almost_end, $pattern); } } return $almost_end; } function end_this($arr) { $end_arr = []; $nubmer_arr = []; foreach ($arr as $key => $value) { $new_value = preg_match_all("/\.\*/iu", $value); array_push($nubmer_arr, $new_value); } $min = min($nubmer_arr); foreach ($arr as $key => $value) { if (preg_match_all("/\.\*/iu", $value) == $min) { array_push($end_arr, $value); } } return $end_arr; } $min_str = get_min_str_in_arr($having_arr); $max_str_replaced = mb_strlen($min_str) - 1; $patterns_arr = get_all_pattern($min_str, $patterns_arr = [], $max_str_replaced); array_push($patterns_arr, $min_str); $patterns_arr = clean_pattern($patterns_arr); $almost_end_arr = find_the_same($having_arr, $patterns_arr); var_dump(end_this($almost_end_arr));
Show:  
Copy Clear