簡體   English   中英

mysql 和 php 關聯數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM