Ik heb dit gemaakt om een overzichtje te krijgen van de browsers en hoeveel ze gebruikt worden.

<?php
$browsers = array("msie","firefox","opera","safari");
foreach ($browsers as $browsers) {
$browser_query[$browsers] = "SELECT sid FROM log WHERE system LIKE '%".$browsers."%';";
$browser_result[$browsers] = mysql_query($browser_query[$browsers]);
$browser_count[$browsers] = mysql_num_rows($browser_result[$browsers]);
}
?>

Vraag 1:
Welke browsers kun je allemaal uit php halen? Dus zoals firefox, msie enzovoorts?

Vraag 2:
In de variabele $browser_count[$browsers] staat een aantal. Ik wil dat de array op inhoud gesorteerd word, dus dat het aantal aflopend is. Hoe kan ik dit doen. Dit kan volgens mij niet met sort(). Klopt dat... En hoe kan het dan wel?
Door middel van de user agent
Ja dat snap ik, alleen welke mogelijkheden zijn er allemaal.
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) is bijvoorbeeld Internet Explorer
en
Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2 is Firefox
Mijn uitleg van net was wat kort;
In de tabel log staat in het veld system opgeslagen van iedere bezoeker wat de $_SERVER['HTTP_USER_AGENT'] is. Nu wil ik dat ook weer kunnen uitlezen en daarvoor is het bovenstaande scripje.
Sytze schreef op 16.04.2006 23:31
Vraag 2:
In de variabele $browser_count[$browsers] staat een aantal. Ik wil dat de array op inhoud gesorteerd word, dus dat het aantal aflopend is. Hoe kan ik dit doen. Dit kan volgens mij niet met sort(). Klopt dat... En hoe kan het dan wel?
Aflopend sorteren kan met rsort() alhoewel ik in dit geval arsort() zou aanbevelen, omdat die de index-associaties behoudt.
Met arsort() krijg ik inderdaad een mooi gesorteerde lijst terug, alleen niet met de namen van de array erbij

<?php
arsort($browser_count);
foreach ($browser_count as $browser) {
echo $browser."<br>";
}
?>

De output is:
2
1
0
0

Terwijl het zo zou moeten zijn:
firefox 2
msie 1
safari 0
opera 0

Dit sluit aan bij de code in het eerste bericht, maar zoals je waarschijnlijk ook al wel door hebt ben ik een behoorlijke noob als het om array's gaat... :$
En zo?

<?php
arsort ($browser_count);
foreach ($browser_count as $key => $value) {
echo $key . ' ' . $value;
}
?>
Dankje, het werkt!
Okee, mooi zo :-)

Reageren