2011-12-26 17 views
2

私はSQL DBに私のサイトの統計情報のためのいくつかのデータを持って作成する方法:私はDBからのすべての日付情報が含まれている多次元配列を作成しようとしている多次元配列PHP

date:   visits:  pageviews: 
12-12-12  34    21 
12-12-13  31    22 
12-12-14  33    2445 
12-12-15  35    2422 
12-12-16  36    232 

//ect ect 

print_r $my_multi_array[12-05-12]; 

そして、私はその日の統計情報が表示されます。最終的な結果として、私はこれを行うことができる必要がありますので、日付は、キー(セレクタ、マルチ配列内の配列の名前)になります画面上。今

//first things first, define the array: 
$my_multi_array=array(); 

//then, in a loop, append to the array: 
$my_multi_array[]=array("$date"=>array('visits'=>mysql_num_rows($visit_query),'pageviews'=>$pageview_query)); 

は今、私はすべてのループとものを行う方法を知っている、と私も多次元配列を行う方法について良いアイデアを持っている、それは私が何か間違ったことをやっていると思うことばかりです私はprint_rその配列は、すべてがよさそうだとき:

Array ([0] => Array ([11-12-24] => Array ([visits] => 1 [pageviews] => 0)) [1] => Array ([11-12-25] => Array ([visits] => 1 [pageviews] => 0)) [2] => Array ([11-12-26] => Array ([visits] => 1 [pageviews] => 0)))1 

お知らせ1を最後に^^。それは結果にあるようでした(誤字ではありません)。私が手

print_r $my_multi_array['11-12-24']; 

::私は、特定の配列をプリントアウトしてみてください今

datekeyとして使用しては)

1 

をそれでは、私は試してみてください。

print_r $my_multi_array[2]; 

とうまく動作します。

何らかの理由で、dateをキーに使用して$my_multi_arrayから配列を選択させてください。

これを修正する方法についてのご意見はありますか?あなたがそうのように、配列のキーとして日付を入れて持って

おかげ

答えて

1

$my_multi_array[$date]=array("$date"=>array('visits'=>mysql_num_rows($visit_query),'pageviews'=>$pageview_query)); 

$my_multi_array[$date]に注意してください。

$my_multi_array[] = ...を実行することによって、右側にコンテンツを含む配列に新しい数値インデックスを作成するだけです。そのため、$my_multi_array[2]のような数値インデックスを使用して配列にアクセスすると、その配列が機能します。

一方、$my_multi_array[$date]を実行すると、キー(この場合は日付を含む文字列)に値を関連付けるハッシュテーブルのような配列が扱われます。

2

array('key' => 'value')スタイルの配列がないため、すべてが正しいです。array([0] => array('key' => 'value'))の代わりに、配列の数値キーにアクセスして正しい結果が得られています。