ps:文章是转载的,create_funciton()被禁用,只能分离出来
转载地址:https://oomake.com/question/3189410
$array = array(
'西区融景城1区',
'西区融景城东区',
'西区融景城2期',
'融景城西区'
);
$return_str = longest_common_substring($array);
$return_str = mb_convert_encoding($return_str, 'utf-8' ,'utf-8');
$return_str = json_decode( json_encode( $return_str ) );
die;
function longest_common_substring($words)
{
$words = array_map('strtolower', array_map('trim', $words));
// $sort_by_strlen = @create_function('$a, $b', 'if (strlen($a) == strlen($b)) { return strcmp($a, $b); } return (strlen($a) < strlen($b)) ? -1 : 1;');
$sort_by_strlen = "niming";
usort($words, $sort_by_strlen);
$longest_common_substring = array();
$shortest_string = mb_str_split(array_shift($words));
while (sizeof($shortest_string)) {
array_unshift($longest_common_substring, '');
foreach ($shortest_string as $ci => $char) {
foreach ($words as $wi => $word) {
if (!strstr($word, $longest_common_substring[0] . $char)) {
// No match
break 2;
} // if
} // foreach
$longest_common_substring[0].= $char;
} // foreach
array_shift($shortest_string);
}
// If we made it here then we've run through everything
usort($longest_common_substring, $sort_by_strlen);
return array_pop($longest_common_substring);
}
function niming($a, $b){
if (strlen($a) == strlen($b)) {
return strcmp($a, $b);
}
return (strlen($a) < strlen($b)) ? -1 : 1;
}