我有这张桌子:
Username, Fan, Count
1danny22, katana1973, 2
bob, rita, 2
mattyhacky, hayley, 2
mattyhacky, dickie1eye, 1
mattyhacky, xxjodiexx, 1
我想将它加载到一个看起来像这样的关联数组中:
Array (
[1danny22] => Array (
[katana1973] => 2,
),
[bob] => Array (
[rita] => 2,
),
[mattyhacky] => Array (
[hayley] => 2,
[dickie1eye] => 1,
[xxjodiexx] = > 1,
)
)
$strSQL = "SELECT username, fan, count( * ) AS intCount FROM fan GROUP BY username, fan ORDER BY username, intCount DESC"; $strResult = mysql_query($strSQL); while($objRow=mysql_fetch_object($strResult)) { code should go in here!!! }
但我真的很挣扎。
有人可以帮忙吗?
非常感谢
TheBounder。
答案 0 :(得分:4)
容易腻......
$sql = "SELECT Username, Fan, Count FROM datatbl";
$res = mysql_query($sql);
while ($row = mysql_fetch_object($res))
$data[$row->Username][$row->Fan] = $row->Count;
我应该进一步解释。你在这里做的是为数据数组创建一个基本索引,它使用公共关联用户名作为索引。在该索引中,您有另一个数组,这使用Fan作为索引,每个项的值是计数。我上面的示例是构建您正在查看的结构的最简单方法。
现在,如果您在阵列上运行print_r,您将看到您定义的结构。
答案 1 :(得分:2)
假设您的初始数组位于$ data中,例如
$data[0] = array("1danny22", "katana1973", 2);
你可以选择
$output = array();
foreach($data as $line) {
$output[$line[0]][$line[1]] = $line[2];
}
答案 2 :(得分:0)
您可以通过返回的结果以编程方式构建它...裸骨示例:
$ar = array();
$result = mysql_query("SELECT * FROM your_table");
while ($ar[] = mysql_fetch_assoc($result));
print_r($ar);