Bonjour,

J'ai une table "top" avec comme structure id, id_num, id_title, id_author, id_user.

Cette table me sert à faire un top 5 des 5 livres que préfère l'utilisateur, exemple d'une entrée :

1, 5 (en position 5 dans le top), titre du bouquin, nom de l'auteur, id de l'utilisateur qui possède ce top 5.

J'aimerais maintenant pouvoir comparer des tops 5 entre eux et voir quel top 5 a le plus de ressemblance un autre top 5.

J'ai donc mis le top 5 à comparer dans un array, et tous les autres tops 5 dans un autre array :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$query = 'SELECT id_title FROM tops5 WHERE id_user="'.$row_user['id'].'" AND id_title != ""'; // on sélectionne les livres du top 5 de l'utilisateur que l'on compare
$result = mysql_query($query);
$arr = array();
while($row = mysql_fetch_array($result)) {
array_push($arr, $row['id_title']);
}
print_r($arr);
 
echo '<br /><br />';
$querya = 'SELECT id_title FROM tops5 WHERE id_user != "'.$row_user['id'].'" AND id_title != ""'; // on sélectionne les livres de tous les autres top 5
$resulta = mysql_query($querya);
$arr2 = array();
while($rowa = mysql_fetch_array($resulta)) {
array_push($arr2, $rowa['id_title']);
}
print_r($arr2);
echo '<br /><br />';
 
 
$resultb = array_intersect($arr, $arr2);
 
print_r($resultb);
?>
Et j'ai donc fait un array_intersect pour voir les similitudes, j'obtiens ça :

$arr :

Array ( [0] => Levels [1] => Good Feeling [2] => Cry [3] => Glad You Came [4] => Hips don't lie )

$arr2 :

Array ( [0] => Levels [1] => Club can't handle me [2] => Good Feeling [3] => Man Down )

$resultb :

Array ( [1] => Levels [2] => Good Feeling )

J'obtiens bien ce qui est similaire à $arr, mais maintenant, je voudrais trouver l'id_user à qui appartient le top 5 qui a le plus de similitudes.

Comment pourrais je m'y prendre ?

Merci par avance pour votre aide!