Php 如何从列表中获取最大差异字符串
我列出了许多具有相似性的字符串,例如:Php 如何从列表中获取最大差异字符串,php,string,duplicates,seo,similarity,Php,String,Duplicates,Seo,Similarity,我列出了许多具有相似性的字符串,例如: $str = array('monkey eat a banana', 'dog eat a banana', 'cat devour an apple', 'cat dine a coco'); //etc 我想从这个数组中提取彼此差异最大的X个字符串。 示例:如果我想提取3个选项,它将是:“猴子吃香蕉”、“猫吃椰子”和“猫吃苹果” 我如何实现这一点?我发现了类似的_text
$str = array('monkey eat a banana',
'dog eat a banana',
'cat devour an apple',
'cat dine a coco'); //etc
我想从这个数组中提取彼此差异最大的X个字符串。
示例:如果我想提取3个选项,它将是:“猴子吃香蕉”、“猫吃椰子”和“猫吃苹果”
我如何实现这一点?我发现了类似的_text()函数,我想我可以使用它,但是如何用任意值X提取它们呢
谢谢你的建议
ps:我将此用于SEO,目的是避免最可能的重复内容。使用以下示例代码进行测试,结论是:从
相似文本()
中选择百分比最低的字符串,它们是最不同的字符串
$str = array('monkey eat a banana',
'dog eat a banana',
'cat devour an apple',
'cat dine a coco');
$len = count($str);
echo '<table width="100%">';
for($i=0; $i<$len; $i++) {
for($j=0; $j<$len; $j++) {
if($i==$j) contiue;
$num = similar_text($str[$i], $str[$j], $percent );
echo '<tr><td>' . $str[$i] . '<td>' . $str[$j] . '<td>' . strlen($str[$i]) . '<td>' . strlen($str[$j]). '<td>' . $num. '<td>' . number_format($percent, 0);
}
}
echo '</table>';
使用以下示例代码进行测试,得出的结论是:从
similor\u text()
中选择百分比最低的字符串,它们是最不同的字符串
$str = array('monkey eat a banana',
'dog eat a banana',
'cat devour an apple',
'cat dine a coco');
$len = count($str);
echo '<table width="100%">';
for($i=0; $i<$len; $i++) {
for($j=0; $j<$len; $j++) {
if($i==$j) contiue;
$num = similar_text($str[$i], $str[$j], $percent );
echo '<tr><td>' . $str[$i] . '<td>' . $str[$j] . '<td>' . strlen($str[$i]) . '<td>' . strlen($str[$j]). '<td>' . $num. '<td>' . number_format($percent, 0);
}
}
echo '</table>';
希望能有所帮助
$str = array(
'cat devour an apple',
'dog eat a banana',
'monkey eat a banana',
'cat dine a coco',
); //etc
$overal_scores = [];
foreach ($str as $i => $s) {
$overal_scores[$i] = 0;
foreach ($str as $j => $d) {
if ($i != $j) {
$overal_scores[$i] += similar_text($s, $d);
}
}
}
asort($overal_scores);
$x = 3;
$results_index = array_slice(array_keys($overal_scores), 0, $x);
$result_str = [];
foreach ($results_index as $index) {
$result_str[] = $str[$index];
}
var_dump($result_str);
希望能有所帮助
$str = array(
'cat devour an apple',
'dog eat a banana',
'monkey eat a banana',
'cat dine a coco',
); //etc
$overal_scores = [];
foreach ($str as $i => $s) {
$overal_scores[$i] = 0;
foreach ($str as $j => $d) {
if ($i != $j) {
$overal_scores[$i] += similar_text($s, $d);
}
}
}
asort($overal_scores);
$x = 3;
$results_index = array_slice(array_keys($overal_scores), 0, $x);
$result_str = [];
foreach ($results_index as $index) {
$result_str[] = $str[$index];
}
var_dump($result_str);