php多次查找字符串,php-在多个字符串中查找完全相同的字符串

标签:php

下面的例子.

我有一个像这样的数组:

Array

(

[0] => vlakke lasflenzen PN6

[1] => vlakke lasflenzen PN10

[2] => vlakke lasflenzen PN16

[3] => vlakke lasflenzen PN25-40

)

我不知道字符串的哪一部分相同.而且我不知道这种模式是否会保持不变.所以我不能在空间或其他东西上爆炸().

我想尝试的是提取所有四个部分中完全相同但在空间之间分割的部分.

因此,对于此示例,我需要根据它们的比较从四个字符串中提取“ vlakke lasflenzen”.

谁能帮我?

解决方法:

$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

来源: https://codeday.me/bug/20191012/1898930.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值