[英]mysql and php associative array
我有這張桌子:
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!!! }
但我真的很掙扎。
有人可以幫忙嗎?
非常感謝
邊界者。
十分簡單...
$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,您將看到您定義的結構。
假設您的初始數組在 $data 中,例如
$data[0] = array("1danny22", "katana1973", 2);
你可以用 go
$output = array();
foreach($data as $line) {
$output[$line[0]][$line[1]] = $line[2];
}
您可以從返回的結果中以編程方式構建它......基本示例:
$ar = array();
$result = mysql_query("SELECT * FROM your_table");
while ($ar[] = mysql_fetch_assoc($result));
print_r($ar);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.