私は完全にPHPの初心者です。今日、グーグルを検索してSOFを掘った後でも、解決方法がわからないという問題が発生しました。これはアナグラムアルゴリズムです。
つまり、基本的に、ここでの問題を理解しています。ユーザーが文字列を入力すると、それを分割してライブラリ(特定の配列)と比較します。次に、2〜3文字で結合する必要があります。それはまさに私が今立ち往生しているところです、私は配列の要素を結合する方法がわかりません。
これが私が実装しているコードとサンプル辞書です。
配列$dictにこれらの要素を含む自作の辞書があります。そして、ユーザーが文字列を入力するためのフォームがあります。入力された文字列は、以下のコードに渡され、$anagramとして宣言されます。入力した文字列を分割して辞書と比較する必要があります。しかし、2文字、3文字などを辞書と比較するなど、それらを結合する方法がわかりません。
<?php
$dict = array(
'abde',
'des',
'klajsd',
'ksj',
'hat',
'good',
'book',
'puzzle',
'local',
'php',
'e');
$anagram = $_POST['anagram'];
//change to lowercase
$anagram = strtolower($anagram);
//split the string
$test = str_split($anagram);
//compare with $dict for the first split without joining
for ($i=0; $i<strlen($anagram); $i++) {
if ($test[$i]==$dict[$i]) {
echo $test[$i]."<br />";
}
}
//problem: how to join elements of the array in the loops
//like user inputs "hellodes"
//after echo "e", how to join the elements like: h-e,h-l,h-l,h-o,h-d,h-e,h-s
//and then h-e-l,h-e-l,h-e-o...etc...
?>
私は完全に初心者なので、アルゴリズムをできるだけ単純にしたいと思っています。そして、私の英語があまり上手ではないので、ごめんなさい。よろしく、キエムグエン。