通过解析数据库表并拉出唯一的名称
问题描述:
我有一个列出像这样的表:通过解析数据库表并拉出唯一的名称
表名:测试
|--------------------|
|------Column 1------|
|--------------------|
|John,Raul,Matt,Tyler|
|Tim,Hannah----------|
|Zeke,Brady,Tim,Tyler|
|Elliot,Zeke---------|
|Matt,Andrew,Idda----|
...
,我需要得到所有这些名称到一个PHP数组,没有多个相同名称的情况。
我会通过SQL获取每个唯一名称更好吗,还是应该拉列,然后通过PHP解析?
最终的PHP阵列会是什么样子:
$test_array[0]="John"
$test_array[1]="Raul"
$test_array[2]="Matt"
$test_array[3]="Tyler"
$test_array[4]="Tim"
$test_array[5]="Hannah"
$test_array[6]="Zeke"
$test_array[7]="Brady"
$test_array[8]="Elliot"
$test_array[9]="Andrew"
$test_array[10]="Idda"
我不知道我怎么会分析每个细胞在表中。你们会怎么做?
答
我同意最好规范化数据库。但是,鉴于你所描述的情况,我会执行SQL select并使用PHP来运行结果。
我初始化$结果为空字符串:
$results = '';
然后我会用串联$结果的每一行:
$results .= $row;
然后我会使用爆炸()将阵列中的全部的名字:
$all_names = explode(',', $results);
然后我会使用array_unique()来减少$ all_names数组唯一值:
$unique_names = array_unique($all_names);
HTH。
我的建议是规范化你的数据库,所以你没有逗号分隔列表-_- –
类似问题:http://*.com/questions/17942508/sql-split-values-to-multiple-rows – mingos
逗号分开的项目...不要存储这样的数据,它只会导致你很多麻烦! – jarlh