2013-03-12 4 views
1

Я пытаюсь создать многомерный массив, как это в PHP:PHP привести к многомерному массиву

$books = array(

    "8" => array( "my girl" => 2.5, 
        "the god delusion" => 3.5, 
        "tweak" => 3, "the shack" => 4, 
        "the birds in my life" => 2.5, 
        "new moon" => 3.5), 

    "14" => array( "the last lecture" => 2.5, 
         "the god delusion" => 3.5, 
         "the noble wilds" => 3, "the shack" => 3.5, 
         "the birds in my life" => 2.5, "new moon" => 1) 
    ); 

из таблицы базы данных, которая, как это:

ID value title 
------------------------------------------------------------------ 
8 5 Clara Callan 
8 5 Where You'll Find Me: And Other Stories 
8 5 The Middle Stories 
8 5 Jane Doe 
8 6 The Witchfinder (Amos Walker Mystery Series) 
8 6 More Cunning Than Man: A Social History of Rats an... 
8 7 Goodbye to the Buttermilk Sky 
9 6 Beloved (Plume Contemporary Fiction) 
12 10 If I'd Known Then What I Know Now: Why Not Learn f... 
14 5 Mary-Kate & Ashley Switching Goals (Mary-Kate ... 
14 5 Tell Me This Isn't Happening 
14 6 Flood : Mississippi 1927 
16 9 Airframe 
17 7 Death in the Clouds 
17 5 Bant/Spec.Last of the Breed 
17 6 Piercing the Darkness 
17 3 Prophet 
19 7 Prague : A Novel 

Я уже попробовал несколько способов, но я до сих пор не могу понять, как это сделать. Я искал множество потоков здесь, но до сих пор никто не обсуждает об этом. Я новичок в PHP, поэтому я не понимаю слишком много концепции массива в PHP. В настоящее время мой PHP код выглядит так:

 $result = mysql_query($mySelectQuery) or die("<br/><br/>".mysql_error()); 
     $books = array(); 
     while ($row = mysql_fetch_array($result)) 
     { 
      $userID = $row{'User-ID'}; 
      $books[$userID] = array($row{'Book-Title'} => $row{'Book-Rating'},); 
     } 

Этот код уже производят аналогичный результат с «что я хочу», но это все-таки заменить существующие книжные записи, так что в конце концов у каждого пользователя есть только одна книга запись в их массив. Мой вопрос:

Как я могу заполнить многомерный массив, отформатированный как мой, с результатом моего запроса?

Спасибо за миллион за ваши ответы. И извините за плохой английский.

ответ

1

Try:

$result = mysql_query($mySelectQuery) or die("<br/><br/>".mysql_error()); 
    $books = array(); 
    while ($row = mysql_fetch_array($result)) 
    { 
     $userID = $row{'User-ID'}; 
     $books[$userID][$row{'Book-Title'}] = $row{'Book-Rating'}; 
    } 

Это будет присвоить название книги в качестве массива ключ/индекс и установите рейтинг, как это значение.

+0

Спасибо, это работает! –

0

Перед оных петли:

$books[$userID] = array();

Внутри использования петли:

$books[$userID][] = array($row{'Book-Title'} => $row{'Book-Rating'},);

0

Попробуйте с этим:

$books[$userID][] = array($row{'Book-Title'} => $row{'Book-Rating'},);

Смежные вопросы