我的网站连接了一个数据库,用于记录用户在我们构建的应用程序上执行的操作。该应用程序包含许多用户可以查看和下载的图像,应用程序跟踪每个用户,他们查看过的图像是否用逗号分隔
我想要做的是编写一个PHP脚本,允许我将这个分隔的文本字符串转换为计算的表格格式
如果数据库的示例记录为:
1 | 1-A, 1-B, 2-A, 2-C
2 | 1-A
3 | 1-B, 2-C
4 |
5 | 1-A, 1-B, 1-C, 2-A
我想编写一个能够将其输出为:
的脚本1-A = 3
1-B = 3
1-C = 1
2-A = 2
2-C = 2
(我想指出,我并不是说我希望在每个条目后面都有变量,其计算总数为值,但我最好还是返回此值)
我的第一步是将每个记录分解为一个数组,但后来我不确定我的下一步是将它转换为可以写入表格的内容。
我意识到数据库的结构很差,但不幸的是我还没写过,所以我没有能力重新构建数据存储。
亲切的问候
答案 0 :(得分:1)
这应该有效:
<?php
$values = array (
'1' => '1-A, 1-B, 2-A, 2-C',
'2' => '1-A',
'3' => '1-B, 2-C',
'4' => '',
'5' => '1-A, 1-B, 1-C, 2-A'
);
$valueCounts = array();
foreach($values as $value)
{
foreach(explode(', ', $value) as $val)
{
if(!key_exists($val, $valueCounts))
{
if($val) $valueCounts[$val] = 1;
}
else
{
$valueCounts[$val]++;
}
}
}
ksort($valueCounts);
foreach($valueCounts as $value => $count)
{
echo "$value = $count<br />";
}
?>
结果:
1-A = 3
1-B = 3
1-C = 1
2-A = 2
2-C = 2
如果您不确定如何填充$values
数组,请粘贴数据库代码,我会尝试将其合并到上面。