3v4l.org

run code in 300+ PHP versions simultaneously
<?php $names = array( '真三国无双', '无双剑姬', '虚无', '一时无两', '南无阿弥陀佛', '崖山之后无中国', '折盒热熔压敏胶JH 1101' ); //拆分词语为单个字符 function split_name($name) { preg_match_all("/./u", $name, $arr); return $arr[0]; } //最长公共子序列 function LCS($str_1, $str_2) { $len_1 = strlen($str_1); $len_2 = strlen($str_2); $len = $len_1 > $len_2 ? $len_1 : $len_2; $dp = array(); for ($i = 0; $i <= $len; $i++) { $dp[$i] = array(); $dp[$i][0] = 0; $dp[0][$i] = 0; } for ($i = 1; $i <= $len_1; $i++) { for ($j = 1; $j <= $len_2; $j++) { if ($str_1[$i - 1] == $str_2[$j - 1]) { $dp[$i][$j] = $dp[$i - 1][$j - 1] + 1; } else { $dp[$i][$j] = $dp[$i - 1][$j] > $dp[$i][$j - 1] ? $dp[$i - 1][$j] : $dp[$i][$j - 1]; } } } return $dp[$len_1][$len_2]; } function search($name) { Global $names; $sort_list = array(); if (mb_strlen($name, 'utf-8') != strlen($name)) { // 是否全英文字符 $arr_1 = array_unique(split_name($name)); foreach ($names as $value) { $arr_2 = array_unique(split_name($value)); $similarity = count($arr_2) - count(array_diff($arr_2, $arr_1)); $sort_list[$value] = $similarity; } } else { foreach ($names as $value) { $similarity = LCS($name, $value); $sort_list[$value] = $similarity; } } arsort($sort_list); return $sort_list; } header('content-type:text/html;charset=utf-8'); print_r(search('中国J'));
Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
Array ( [崖山之后无中国] => 2 [真三国无双] => 1 [折盒热熔压敏胶JH 1101] => 1 [无双剑姬] => 0 [虚无] => 0 [一时无两] => 0 [南无阿弥陀佛] => 0 )
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Array ( [崖山之后无中国] => 2 [真三国无双] => 1 [折盒热熔压敏胶JH 1101] => 1 [无双剑姬] => 0 [虚无] => 0 [一时无两] => 0 [南无阿弥陀佛] => 0 )
Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.28
Array ( [崖山之后无中国] => 2 [真三国无双] => 1 [折盒热熔压敏胶JH 1101] => 1 [南无阿弥陀佛] => 0 [一时无两] => 0 [无双剑姬] => 0 [虚无] => 0 )

preferences:
206.43 ms | 402 KiB | 314 Q