[英]List and sort keywords by value alphabetically php mysql
As the title suggests i want to list (mix all the values) and sort keywords of all rows by value alphabetically in php and mysql.正如标题所示,我想在 php 和 mysql 中按字母顺序列出(混合所有值)和对所有行的关键字进行排序。
I have multiple rows with the column's name "keywords", separated with commas :我有多行列名为“关键字”,用逗号分隔:
voiture électrique, recyclage des batteries voiture électrique, recyclage des电池
Télétravail, travail à domicile, bureau Télétravail,travail à domicile,局
réchauffement climatique, effet de serre réchauffement climatique, effet de serre
coworking, travail共同工作,工作
Here is my code :这是我的代码:
<?php
include_once ("config.php");
$query_top = "SELECT keywords FROM market WHERE keywords != ''";
if ($stmt_top = $bdd->prepare($query_top)) {
$stmt_top->execute();
$result_top = $stmt_top->get_result();
$num_of_rows_top = $result_top->num_rows;
$stmt_top->close();
}
while ($row_kw = $result_top->fetch_assoc())
{
$keywords = $row_kw['keywords'];
$array = array_filter(array_map('trim', explode(',', $keywords)));
sort($array);
$array = implode('<br>', $array);
echo $array . '<br/>';
}
?>
My result need to be sort by value alphabetically like :我的结果需要按字母顺序按值排序,例如:
Awesome惊人的
Beauty美丽
Coworking联合办公
Any ideas?有任何想法吗?
EDIT FINAL WORKING CODE IS :编辑最终工作代码是:
$array = [];
while ($row_kw = $result_top->fetch_assoc())
{
$array = array_merge($array, explode(',', $row_kw['keywords']));
}
$array = array_filter(array_map('trim', $array));
sort($array);
// FR language
$collator = new Collator('fr_FR');
$collator->asort( $array );
$array = implode('<br>', $array);
echo $array . '<br/>';
Thanx a lot to @Kinglish for the help.非常感谢@Kinglish 的帮助。
Sort your array outside the loop that is building it在构建它的循环之外对数组进行排序
$array=[];
while ($row_kw = $result_top->fetch_assoc()) {
array_merge($array, explode(',', $row_kw['keywords']);
}
$array = array_filter(array_map('trim', $array));
sort($array);
$array = implode('<br>', $array);
echo $array . '<br/>';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.