Fusionner des tableaux selon leurs similarités
Bonjour,
je souhaite coder un script qui me permet de fusionner un nombre de tableaux définis ( pour l'instant ) selon la similarité de leur valeur.
Etape 1 : j'ai une liste de base avec différentes phrases de différentes tailles.
Etape 2 : je découpe cette liste en plusieurs tableaux selon le nombre de mots
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| $max = 6;
for ($i = 1; $i <= $max; $i++) {
${'n'.$i} = array();
foreach ( $test as $key => $taille ){
$tWord = explode(' ', $taille);
$nb = count($tWord);
if ($nb == $i){
${'n'.$i}[] = $taille;
unset($test[$key]);
}
}
} |
Etape 3 ... et c'est la que je bloque ... je fusionne les X tableaux selon leur similarité.
J'arrive à fusionner 2 tableau ( le 1 avec le 2, le 3, avec le 4, etc ... ) mais pas tous les compiler
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| $max = 6;
for ($i = 1; $i <= $max; $i++) {
$ip = $i + 1 ;
foreach (${'n'.$i} as $key => $nivsupp) {
foreach (${'n'.$ip} as $key2 => $nivinff) {
$pos1 = stripos($nivinff, $nivsupp);
if ($pos1 !== false) {
${'n'.$i}[$nivsupp][] = $nivinff;
unset (${'n'.$ip}[$key2]);
unset(${'n'.$i}[$key]);
}
}
}
} |
Exemple d'utilisation
Citation:
Bonjour
bonjour toi
bonjour toi, comment tu t'appel
Salut
Salut sacha
Salut sacha ça va ?
Je voudrais que le script me retourne :
Code:
array('Bonjour' => array( "bonjour toi")=> array( "bonjour toi, comment tu t'appel") , 'Salut' => array("Salut sacha")=> array( "Salut sacha ça va ?") );
Merci pour votre aide :)