0

2つの単語を入力して、レーベンシュタインスコアを比較できるフォームがあります。これは問題なく機能します。

1つの単語を「、」で区切られた単語の文字列と比較できるようにしたい。その後、ロット全体がエコーアウトする必要があります。これが私がこれまでに持っているものです:

Levenstien for <b><?php echo $_POST["source"]; ?></b> and <b><?php echo $_POST["target"]; ?></b>:

<?php
$string5 = $_POST["source"];
$string6 = $_POST["target"];
$array6 = explode(', ',$string6); 

echo levenshtein("$string5","$array6");
?>
4

1 に答える 1

0

foreachループを使用します(forループでも問題ありません)。試す:

Levenstien for <b><?php echo $_POST["source"]; ?></b> and <b><?php echo $_POST["target"]; ?></b>:

<?php
$string5 = $_POST["source"];
$string6 = $_POST["target"];
$array6 = explode(', ',$string6); 

foreach ($array6 as $derp)
{
    echo $string5, "/", $derp, ": ", levenshtein($string5, $derp), "<br>";
}

?>

スコア順に出力するには、次を使用します。

Levenstien for <b><?php echo $_POST["source"]; ?></b> and <b><?php echo $_POST["target"]; ?></b>:

<?php
$string5 = $_POST["source"];
$string6 = $_POST["target"];
$array6 = array_map('trim', explode(',',$string6));
$doop = array();

foreach ($array6 as $derp)
{
    doop[$derp] = levenshtein($string5, $derp);
}

arsort($doop); // sorts highest element first

foreach ($words as $key => $value)
{
    echo sprintf('%s / %s: %s<br />', $string5, $key, $value);
}

?>
于 2012-10-04T20:18:27.203 に答える