en gros, j'ai un array qui contient des array qui contiennent chacun une case qui se nomme 'message' , et j'ai un autre array qui contient des tags, et jdois trier les premiers array par nombre de tags présent dans la case 'message' correspondante
pour ceux qui n'ont pas compris, voila ce que me donne un var_dump du premier array :
ainsi de suite pour plusieurs résultats .... et je voudrais qu'ils soient trié selon le nombre de "tags" présent dans chaque case message ... pour cela, j'ai un array qui contient mes tags .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 array 0 => array 'id' => string '50' (length=2) 'message' => string 'mon message' (length=11) 1 => array 'id' => string '53' (length=2) 'message' => string 'un autre message' (length=16)
j'ai essayer quelque chose comme cela pour commencer :
avec $simil le array ci dessus, et $cur_topic_tags c'est mon array avec les tags ... le problème, c'est que ce code dépasse les 30 secondes .... ( $simil contient plus d'une centaine de array )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 foreach($simil as $topic_similars){ $I = 0; foreach($cur_topic_tags as $tag){ if(preg_match('#'.$tag.'#', $topic_similars['message'])) $I++; } $similitudes[] = $simil; $similitudes['similitudes'] = $I; }
Partager