php-在多个字符串中查找完全相同的字符串
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-在多个字符串中查找完全相同的字符串,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1573字,纯文字阅读大概需要3分钟。
内容图文
![php-在多个字符串中查找完全相同的字符串](/upload/InfoBanner/zyjiaocheng/692/0e47300886c044e39ce40c1f1917def7.jpg)
下面的例子.
我有一个像这样的数组:
Array
(
[0] => vlakke lasflenzen PN6
[1] => vlakke lasflenzen PN10
[2] => vlakke lasflenzen PN16
[3] => vlakke lasflenzen PN25-40
)
我不知道字符串的哪一部分相同.而且我不知道这种模式是否会保持不变.所以我不能在空间或其他东西上爆炸().
我想尝试的是提取所有四个部分中完全相同但在空间之间分割的部分.
因此,对于此示例,我需要根据它们的比较从四个字符串中提取“ vlakke lasflenzen”.
谁能帮我?
解决方法:
您正在谈论的问题也称为the longest common substring problem.
我在字符串数组中找到了an implementation for finding the longest common substring.如原始帖子中所述,用法:
<?php
$array = array(
'PTT757LP4',
'PTT757A',
'PCT757B',
'PCT757LP4EV'
);
echo longest_common_substring($array);
// => T757
?>
相关代码:
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;');
usort($words, $sort_by_strlen);
$longest_common_substring = array();
$shortest_string = 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);
}
内容总结
以上是互联网集市为您收集整理的php-在多个字符串中查找完全相同的字符串全部内容,希望文章能够帮你解决php-在多个字符串中查找完全相同的字符串所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。