как создать многомерный массив PHP

У меня есть данные для статистики моих сайтов в SQL DB:

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 в конце ^^. Казалось, что это результат (а не опечатка).

Теперь, когда я пытаюсь распечатать определенный массив (используя date в качестве key ):

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

Я получил:

 1 

Итак, я пытаюсь:

 print_r $my_multi_array[2]; 

и это прекрасно работает.

По какой-то причине он не позволит мне выбрать массив из $my_multi_array используя date в качестве ключа.

Есть какие нибудь идеи как это починить?

благодаря

Related of "как создать многомерный массив PHP"

Вы должны поместить дату в качестве ключа массива, например:

 $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[2] , он работает.

С другой стороны, делая $my_multi_array[$date] вы обрабатываете массив как хеш-таблицу, где вы связываете ключ (в данном случае строку, содержащую дату) со значением.

Все правильно, потому что у вас нет array('key' => 'value') style array('key' => 'value') , вместо этого у вас есть array( [0] => array( 'key' => 'value' ) ) поэтому вы получаете правильный результат при обращении к цифровому ключу массива.