2016-09-13 11 views
1

PHPに配列を持たせて、特定の文字列に最も類似した順序で並べ替える方法はありますか?例えば入力に基づいて配列を並べ替える

$array = array("Bob", "Brad", "Britney"); 
$userinput = "Bradley123"; 

/* 
function that changes the array to be 
array("Brad","Britney","Bob") 
from the most similar from the $userinput 
*/ 
+0

私はそうする可能性があるとは思わない。 – FluxCoder

+0

@FluxCoderそれでは、 'php'が動くことをどのように提案するのですか – Achmed

+1

そして、あなたは「最も類似」をどれくらい正確に定義していますか? –

答えて

1

私はここに、いくつかの研究を行ってきたが、あなたがそれを行うことの方法です:

$array = array(0 => 'blue', 1 => 'reds', 2 => 'green', 3 => 'reds'); 
//Words to be searched from. 

$res = array("percent" => "0", "word" => "N/A"); 
//Result, this is an array for the bellow loop to talk to. 

foreach($array AS $ar){ 
    similar_text("red", $ar, $percent); 

    //If it's more like the word, then replace the percentage with the percentage of similarity & word. 
    if($percent > $res["percent"]){ 
    $res["percent"] = $percent; 
    $res["word"] = $ar; 
    } 
} 

//Echo out the most similar word. 
echo $res["word"]; 

私が見つけることができるものから、これは可能な唯一の方法でしたこのようなことをするために。

+0

私は同じ配列のすべての結果を持つようにコードを変更しようとしましたが、失敗し続けます。それぞれの結果を配列に持ち込む方法を知っていて、「ほとんど」同様の方法で配列します。 – Achmed

+0

これはすべて可能なのかどうかはわかりませんが、各ループのための余分なものではありません。私が言ったように、あなたはデータベースのようなものを使うことができますが、このスクリプトはすでに尋ねたことはしていますが、配列には入れません。 – FluxCoder

関連する問題