/* c'est se compliquer pour rien de mettre d'abord les mots dans une chaîne pour la convertir en tableau
foreach ($rows as $row)
{
$kws .= $row[0]; // Je cree un grand string de tous les mots clefs
}
// un tableau de tous les mots clefs
$kw_all = explode(',' , $kws);
keywords = array_unique($kw_all);
*/
/*je dirais que ceci fait la même chose:*/
$kw_all = array();
foreach ($rows as $row)
{
$kws_all[] .= $row[0];
}
/*mais pour tenir compte de la remarque de xtg:*/
$kw_all = array();
foreach ($rows as $row)
{
$mot = trim($row[0]);
if (in_array($mot, $kw_all) != false))
{
$kws_all[] .= $mot;
}
}
Code : Tout sélectionner
$kws=array();//important
$q = 'SELECT keywords AS FROM products ';
$db->setQuery($q);
$rows = $db->loadRowList();
foreach ($rows as $row)
{
//$kws[] = $row[0];
$kws= array_merge($kws, explode(',',$row[0]));
}
$keywords = array_unique($kws);foreach ($rows as $row)
{
print "<br :>";
print_r($row) ;
print "<br :>";
$kws .= $row[0]; // Je cree un grand string de tous les mots clefs
}
et que tu postes ici le résultat affichéCode : Tout sélectionner
static function getKeywords(){
$kws = $kw_all = array();
// pour faire un trim
$kw = '';
// pour recuperer les occurences
$i = 0;
$db =& JFactory::getDBO();
$q = 'SELECT keywords FROM product ;';
$db->setQuery($q);
$rows = $db->loadRowList();
foreach ($rows as $row)
{
$kw_all = explode(',',$row[0]);
$kws= array_merge($kws, $kw_all);
}
$keywords = array_unique($kws);
return $keywords;
}Code : Tout sélectionner
$sql = 'SELECT GROUP_CONCAT(DISTINCT keywords) FROM products';
$db->setQuery($sql);
$raw_data = $db->loadResult();
$data = array_map('trim', explode(',', $raw_data));
$uniques = array_unique($data);
$frequence = array_count_values($data); // array(value => count)<?PHP
function decouper ($tableau)
{
$resultat = array();
foreach($tableau as $ligne)
{
$ligne = explode(",", $ligne);
$mot = $ligne[0];
if (in_array($mot, $resultat) == false)
{
$resultat[] = $mot;
}
}
sort($resultat);
return $resultat;
}
function decouper_trim ($tableau)
{
$resultat = array();
foreach($tableau as $ligne)
{
$ligne = explode(",", $ligne);
$mot = trim($ligne[0]);
if (in_array($mot, $resultat) == false)
{
$resultat[] = $mot;
}
}
sort($resultat);
return $resultat;
}
//tableau soigné
print "<h1>Tableau soigné fonction sans trim</h1>";
$vals = array ("amour,gloire,beauté, ..., val1n",
"amour, val22,val23, ..., val2n",
"gloire, val32, val 33,...,!!!",
"beauté, valp2,valp3, ..., valpn");
$resultat = decouper($vals);
print_r($resultat);
//tableau négligé
print "<h1>Tableau négligé fonction sans trim</h1>";
$vals = array ("amour ,gloire,beauté, ..., val1n",
"amour, val22,val23, ..., val2n",
"gloire, val32, val 33,...,!!!",
"beauté, valp2,valp3, ..., valpn");
$resultat = decouper($vals);
print_r($resultat);
print "<h1>Tableau négligé fonction avec trim</h1>";
$resultat = decouper_trim($vals);
print_r($resultat);
?>