ウェブサイト管理者のために統計を印刷したい多次元配列があります。私の問題は、データを希望の形式で配列に入れると、それを取得する方法がわからないことです。私はそれを得るために重要な値を知らなければなりません例えば$uniqueBrowser["Firefox"]["14.0.1"]['times'];
たとえば、Firefox 70%、IE 30%を開始点として言いたいです(ブラウザで「使用された回数」のすべてのバージョンを集計します)。次に、特定のバージョン、たとえばFF3.6 14%、FF14 51%などにさらにドリルダウンしたいと思います(バージョンに関連付けられた時間の値を出力するだけです)。
編集:私の質問は、上記の方法でデータを取得するにはどうすればよいですか?私の頭は揚げられており、私はこれに長い間取り組んできました。誰かが私の惨めさから私を追い出してください。これを行うためのより良い方法があれば、私にも知らせてください。
私がこれまでに持っているコードは以下の通りです。このコードは、データベースから返されたデータを反復処理するforeachループで実行されます。および変数は$browser
、ループ$version
の各反復でデータベースから返されるブラウザー値とバージョン値に設定されます。foreach
if(in_array($browser, $uniqueBrowser)) {
if(in_array($version, $uniqueBrowser[$browser])) {
$uniqueBrowser[$browser][$version]['times'] = $uniqueBrowser[$browser][$version]['times'] + 1;
} else {
$uniqueBrowser[$browser]['version'] = $version;
$uniqueBrowser[$browser][$version]['times'] = 1;
}
} else {
$uniqueBrowser[] = $browser;
$uniqueBrowser[$browser]['version'] = $version;
$uniqueBrowser[$browser][$version]['times'] = 1;
}
このコードを実行すると、(var_dumpを介して)次のようになります。
Browser data: array(4) {
[0]=>
string(7) "Firefox"
["Firefox"]=>
array(3) {
["version"]=>
string(6) "14.0.1"
[15]=>
array(1) {
["times"]=>
int(2)
}
["14.0.1"]=>
array(1) {
["times"]=>
int(15)
}
}
[1]=>
string(17) "Internet Explorer"
["Internet Explorer"]=>
array(2) {
["version"]=>
string(9) "8.0.0.253"
["8.0.0.253"]=>
array(1) {
["times"]=>
int(1)
}
}
}