【发布时间】:2017-02-06 12:32:30
【问题描述】:
我想对我的数据库中的数据进行排序。我想使用关联数组,以便对其进行最佳排序。
如上所述,我从数据库中获取所有数据。通过执行 $row['manufacturer'] 我会得到如下数据:
motorola
sony
motorola
google
samsung
lg
samsung
我希望它像这样保存在数组中:(顺序并不重要,尽管首选字母顺序)
"motorola" => 2
"sony" => 1
"google" => 1
"samsung" => 2
"lg" => 1
我尝试这样做,但它不起作用并导致我的网络主机清理日志,因为它导致了近 2 gigs 的日志文件。
我为保存它而编写的代码
$manufacturers = array();
//$row are the rows from my database. I will not add them, but by doing $row['manufacturer'] you'll get some brands like google, motorola, etc.
while($row = $resultSelect->fetch_assoc()) {
for ($i = 0; $i < $manufacturers; $i++) {
$alreadyEntered = 0;
if ($manufacturers[$i] == $row['manufacturer']) $alreadyEntered = 1;
if ($alreadyEntered == 0) {
$manufacturers[$row['manufacturer']] = 1;
} else {
$manufacturers[$row['manufacturer']] += 1;
}
//It caused huge logs, so I decided to break on 50.
if ($i > 50) {
break;
}
}
}
//Dump it :) to see if it worked
var_dump($manufacturers);
我不知道如何让它发挥作用。我尝试在 Google 和 SO 上搜索以在关联数组中设置值,但没有任何效果。
编辑:
我的行:
【问题讨论】:
-
所以您的表有多个具有相同“制造商”的行,现在您想通过计数对其进行排序?你可以通过使用 SQL 查询来做到这一点
-
@AfifZafri 是的,我有多行,是的,我想通过计数对其进行排序。如果我可以使用 SQL 来做到这一点,我该怎么做呢?我还编辑了帖子,以便您可以看到行
标签: php arrays sorting for-loop while-loop