0
我已經在尋找我的問題的解決方案,但我根本沒有理解答案,也許是因爲它們對我的問題沒有用處,但是從來沒有想過,我還沒有想出如何做到這一點。具有多個值的PHP數組需要一種分組方式
我有結構像這樣的數組:
Array (
[Firefox] =>
Array (
[name] => Firefox
[clicks] => 0
[requests] => 5731
)
)
Array (
[Firefox] =>
Array (
[name] => Firefox
[clicks] => 0
[requests] => 5731
)
)
Array (
[Internet Explorer] =>
Array (
[name] => Internet Explorer
[clicks] => 1
[requests] => 1973
)
)
通過這部分代碼生成:
$q1="SELECT r.ua, count(c.rid) as cnum, count(r.kwd) as rnum
FROM requests r LEFT JOIN clicks_214 c ON r.id=c.rid
WHERE hid='$hid'
AND r.time BETWEEN '$date1 $hour1:00:00' AND '$date2 $hour2:00:00'
GROUP BY r.ua
ORDER BY rnum DESC
LIMIT $limit,50";
$qr1=mysqli_query($conn,$q1) or die (mysqli_error());
while(($r=mysqli_fetch_assoc($qr1))!=null)
{
$brow_obj=new Browser($r['ua']);
$brow=$brow_obj ->getBrowser();
$b_array[$brow]['name'] = $brow;
$b_array[$brow]['clicks'] = $r['cnum'];
$b_array[$brow]['requests'] = $r['rnum'];
}
我的問題是,所有我需要做的是一種GROUP BY的瀏覽器名稱(Firefox,Internet Explorer,Chrome ...)並總結所有點擊和請求名稱,明顯刪除重複項,例如:
名稱:Firefox 點擊:所有的點擊Firefox的 要求:所有用於Firefox
請求名稱:Internet Explorer的 次數:所有IE 請點擊:所有IE
的請求,但不工作 這裏是表結構:
要求
id(PK),ua(user agent),kwd,hid(FK),time
點擊
id(PK),rid(FK)
爲什麼你要在陣列中的數據進行排序時,你可以得到它通過查詢排序? – 2014-10-06 09:50:13
我想對瀏覽器名稱做一個像GROUP BY一樣的事情,總點擊次數和請求次數,但我只會得到重複的瀏覽器名稱,點擊次數和請求編號爲 – CapitanFindus 2014-10-06 09:55:02
,所以問題在於您得到的瀏覽器數量相同次,但數據是正確的? – 2014-10-06 10:00:20