2009-10-10 11 views
0

J'ai un tableau de résultats de tables relationnelles mysql. Il ressemble à ceci:Mise en forme simple d'un tableau multidimensionnel à partir de mysql dans php

array(10) { 
    [0]=> 
    object(stdClass)#14 (35) { 
    ["eventID"]=> 
    string(1) "1" 
    ["eventTitle"]=> 
    string(7) "EVENT 1" 
    ["artistID"]=> 
    string(1) "1" 
    ["artistName"]=> 
    string(8) "ARTIST 1" 
    ["artistDescription"]=> 
    string(20) "ARTIST 1 description" 
    // etc. 
    } 
    [1]=> 
    object(stdClass)#15 (35) { 
    ["eventID"]=> 
    string(1) "1" 
    ["eventTitle"]=> 
    string(7) "EVENT 1" 
    ["artistID"]=> 
    string(1) "2" 
    ["artistName"]=> 
    string(8) "ARTIST 2" 
    ["artistDescription"]=> 
    string(20) "ARTIST 2 description" 
    // etc. 
    } 
    [2]=> 
    object(stdClass)#16 (35) { 
    ["eventID"]=> 
    string(1) "1" 
    ["eventTitle"]=> 
    string(7) "EVENT 1" 
    ["artistID"]=> 
    string(1) "3" 
    ["artistName"]=> 
    string(8) "ARTIST 3" 
    ["artistDescription"]=> 
    string(20) "ARTIST 3 description" 
    // etc. 
    } 
    [3]=> 
    object(stdClass)#17 (35) { 
    ["eventID"]=> 
    string(1) "2" 
    ["eventTitle"]=> 
    string(7) "EVENT 2" 
    ["artistID"]=> 
    string(1) "5" 
    ["artistName"]=> 
    string(8) "ARTIST 5" 
    ["artistDescription"]=> 
    string(20) "ARTIST 5 description" 
    // etc. 
    } 
    [4]=> 
    object(stdClass)#17 (35) { 
    ["eventID"]=> 
    string(1) "2" 
    ["eventTitle"]=> 
    string(7) "EVENT 2" 
    ["artistID"]=> 
    string(1) "7" 
    ["artistName"]=> 
    string(8) "ARTIST 7" 
    ["artistDescription"]=> 
    string(20) "ARTIST 7 description" 
    // etc. 
    } 
//etc. 
} 

Je veux faire un tableau multidimensionnel qui ressemblerait à celui-ci:

array(2) { 
    [1]=> 
    array(9) { 
    ["eventID"]=> 
    string(1) "1" 
    ["eventTitle"]=> 
    string(7) "EVENT 1" 
    ["artists"]=> 
    array(3) { 
     [1]=> 
     array(2) { 
     ["artistName"]=> 
     string(8) "ARTIST 1" 
     ["artistDescription"]=> 
     string(20) "ARTIST 1 description" 
     } 
     [2]=> 
     array(2) { 
     ["artistName"]=> 
     string(8) "ARTIST 2" 
     ["artistDescription"]=> 
     string(20) "ARTIST 2 description" 
     } 
     [2]=> 
     array(2) { 
     ["artistName"]=> 
     string(8) "ARTIST 3" 
     ["artistDescription"]=> 
     string(20) "ARTIST 3 description" 
     } 
    } 
    } 
    [2]=> 
    array(9) { 
    ["eventID"]=> 
    string(1) "2" 
    ["eventTitle"]=> 
    string(7) "EVENT 2" 
    ["artists"]=> 
    array(3) { 
     [1]=> 
     array(2) { 
     ["artistName"]=> 
     string(8) "ARTIST 5" 
     ["artistDescription"]=> 
     string(20) "ARTIST 5 description" 
     } 
     [2]=> 
     array(2) { 
     ["artistName"]=> 
     string(8) "ARTIST 2" 
     ["artistDescription"]=> 
     string(20) "ARTIST 7 description" 
     } 
     [2]=> 
     array(2) { 
     ["artistName"]=> 
     string(8) "ARTIST 3" 
     ["artistDescription"]=> 
     string(20) "ARTIST 7 description" 
     } 
    } 
    } 
} 

j'ai commencé à créer un tableau dans une boucle FOR mais je coincé avec la création ce tableau d'artistes [] et je suis totalement confus les 30 dernières minutes =)

Merci d'avance pour toute aide!

Répondre

3
<?php 
$output = array(); 
foreach($resultset as $event) 
{ 

    $eventId = $event['eventID']; 
    $artistId = $event['artistID']; 
    //Using the eventId as the index ensures the event is unique and easy to lookup in the array. 
    $output[$eventId]['eventTitle'] = $event['eventTitle']; 
    $output[$eventId]['eventID'] = $event['eventID']; 
    //Using the 'artistID' as the index of artists ensures each artist is unique and easy to lookup. 
    $output[$eventId]['artists'][$artistId]['artistID'] = $artistId; 
    $output[$eventId]['artists'][$artistId]['artistName'] = $event['artistName']; 
    $output[$eventId]]['artists'][$artistId]['artistDescription'] = $event['artistDescription']; 
} 
echo '<pre>' . print_r($output,true) . '</pre>'; 
+0

Merci beaucoup! Exactement ce dont j'avais besoin! La seule chose que je devais changer était $ event ['eventID'] à la syntaxe de l'objet $ event-> eventID. Merci pour une aide rapide ;-) – errata