Code : Tout sélectionner
$nbr=strlen($monmotNET); // 6
for ($i=$nbr; $i>1; $i--) {
require ('mysqli_conn.php');
$conn = new mysqli($servername, $username, $password, $dbname);
$monmotNET=substr($monmotNET, -$i, $i);
$sorted_letters = $conn->real_escape_string(sort_alpha_noaccent_tolower($monmotNET));// l'anagramme unique de recherche
$query = "SELECT * FROM dictionnaire WHERE sorted_letters = '$sorted_letters'";// sélectionne tous les mots du dictionnaire ayant cet anagramme unique
$words = $conn->query($query);
while ($word = $words->fetch_object())
{
$nbrAna++;
$Multianagramme.= ' <a href="https://www.verifier-mots.fr/'.suppr_accents($word->scrabble_name).'.html" title="'.$word->scrabble_name.'" >'.$word->scrabble_name.'</a>'.' ('.$word->scrabble_points.' points), ';
}
$word = 'harpes';
$sortedLetters = Combination::sortLetters($word);
echo "For word <b>$word</b>, sorted letters: <b>$sortedLetters</b><br/>";
for ($length = strlen($word) - 1; $length > 1; $length--) {
echo "<br/>Unique combinations with <b>$length</b> letters<br/>";
$combination = new Combination($word, $length);
$i = 0;
while ($letters = $combination->next())
echo str_pad(++$i, 2, 0, STR_PAD_LEFT)." - $letters<br/>";
}
class Combination {
private $length ;
private $max;
private $letters;
private $indexes = array();
private $tabIndexes = array();
public function __construct($letters, $max)
{
$this->length = strlen($letters);
$this->max = $max;
$this->letters = self::sortLetters($letters);
}
public static function sortLetters($letters)
{
$array = str_split($letters);
sort($array);
return implode('', $array);
}
public function next() {
if (!count($this->indexes)) {
for ($i = 0; $i < $this->max; $i++)
$this->indexes[$i] = $i;
return $this->getCombination();
}
for ($i = $this->max - 1; $i > -1; $i--) {
if ($this->indexes[$i] + 1 < $this->length - ($this->max - $i - 1)) {
$this->indexes[$i]++;
if ($i + 1 < $this->max)
for ($j = $i + 1; $j < $this->max; $j++)
$this->indexes[$j] = $this->indexes[$j - 1] + 1;
return $this->getCombination();
}
}
return false;
}
public function getIndex()
{
return implode('', $this->indexes);
}
public function getCombination()
{
$this->tabIndexes[] = $this->getIndex();
$combination = '';
foreach ($this->indexes as $index)
$combination.= $this->letters[$index];
return $combination;
}
}
For word harpes, sorted letters: aehprs
Unique combinations with 5 letters
01 - aehpr
02 - aehps
03 - aehrs
04 - aeprs
05 - ahprs
06 - ehprs
Unique combinations with 4 letters
01 - aehp
02 - aehr
03 - aehs
04 - aepr
05 - aeps
06 - aers
07 - ahpr
08 - ahps
09 - ahrs
10 - aprs
11 - ehpr
12 - ehps
13 - ehrs
14 - eprs
15 - hprs
Unique combinations with 3 letters
01 - aeh
02 - aep
03 - aer
04 - aes
05 - ahp
06 - ahr
07 - ahs
08 - apr
09 - aps
10 - ars
11 - ehp
12 - ehr
13 - ehs
14 - epr
15 - eps
16 - ers
17 - hpr
18 - hps
19 - hrs
20 - prs
Unique combinations with 2 letters
01 - ae
02 - ah
03 - ap
04 - ar
05 - as
06 - eh
07 - ep
08 - er
09 - es
10 - hp
11 - hr
12 - hs
13 - pr
14 - ps
15 - rsCode : Tout sélectionner
function verifier($monmotNET) {
require ('mysqli_conn.php');
$conn = new mysqli($servername, $username, $password, $dbname);
$sorted_letters = $conn->real_escape_string(sort_alpha_noaccent_tolower($monmotNET));// l'anagramme unique de recherche
$query = "SELECT * FROM dictionnaire WHERE sorted_letters = '$sorted_letters'";// sélectionne tous les mots du dictionnaire ayant cet anagramme unique
$words = $conn->query($query);
while ($word = $words->fetch_object())
{
$nbrAna++;
echo $word->scrabble_name.", ";
}
}Code : Tout sélectionner
For word reprendre, sorted letters: deeenprrr
Unique combinations with 8 letters
éprendre, rependre, éprendre, rependre, éprendre, rependre, reperdre,
Unique combinations with 7 letters
repende, repende, repende, reperde, reperde, reperde, prendre, reprend, prendre, reprend, prendre, reprend, prendre, reprend, prendre, reprend, prendre, reprend, prendre, reprend, prendre, reprend, prendre, reprend, repérer,
Unique combinations with 6 letters
denrée, denrée, denrée, eprend, pendre, repend, eprend, pendre, repend, eprend, pendre, repend, rendre, rendre, rendre, perdre, reperd, perdre, reperd, perdre, reperd, eprend, pendre, repend, eprend, pendre, repend, eprend, pendre, repend, rendre, rendre, rendre, perdre, reperd, perdre, reperd, perdre, reperd, eprend, pendre, repend, eprend, pendre, repend, eprend, pendre, repend, rendre, rendre, rendre, perdre, reperd, perdre, reperd, perdre, reperd, repère, repère, repère,
Unique combinations with 5 letters
pende, rende, rende, rende, perde, perde, perde, pende, rende, rende, rende, perde, perde, perde, prend, prend, prend, pende, rende, rende, rende, perde, perde, perde, prend, prend, prend, prend, prend, prend, neper, neper, neper, perre, perre, perre, errer, neper, neper, neper, perre, perre, perre, errer, neper, neper, neper, perre, perre, perre, errer,
Unique combinations with 4 letters
éden, pede, éden, pede, pend, nerd, rend, nerd, rend, nerd, rend, perd, perd, perd, éden, pede, pend, nerd, rend, nerd, rend, nerd, rend, perd, perd, perd, pend, nerd, rend, nerd, rend, nerd, rend, perd, perd, perd, épée, nepe, pêne, nere, rêne, nere, rêne, nere, rêne, père, père, père, erré, réer, erré, réer, erré, réer, nepe, pêne, nere, rêne, nere, rêne, nere, rêne, père, père, père, erré, réer, erré, réer, erré, réer, nepe, pêne, nere, rêne, nere, rêne, nere, rêne, père, père, père, erré, réer, erré, réer, erré, réer,
Unique combinations with 3 letters
der, der, der, der, der, der, der, der, der, née, ère, réé, ère, réé, ère, réé, née, ère, réé, ère, réé, ère, réé, pré, pré, pré, née, ère, réé, ère, réé, ère, réé, pré, pré, pré, pré, pré, pré,
Unique combinations with 2 letters
dé, dé, dé, en, né, ré, ré, ré, en, né, ré, ré, ré, en, né, ré, ré, ré,