Hi I would do it this way (untested) while ($row = mysql_fetch_assoc($result)) { $vehicles[$row['dealer_id][$row['vehicle_id]['views'][] = $row['page_views']; }
should end up something like this ( [645] => Array ( [35073] => Array ([ [views]=> Array ( [1] => 10 [0] => 6 ) ) ) Tom At 01:09 PM 28/06/2002 +1200, Morgan Grubb wrote: >I have a large dataset which can contain many different fields, and I'm >trying to flatten them in such a way that I can display it happily in a >table. > >To simplify: I'm populating the array such (many many more fields, but these >will do): > > $i = 0; > while ($row = mysql_fetch_assoc($result)) { > $vehicles[$i]['dealer_id'] = $row['dealer_id']; > $vehicles[$i]['vehicle_id'] = $row['vehicle_id']; > $vehicles[$i][$row['company_id']] = $row['page_views']; > $i++; > } > >Now, if that vehicle_id and dealer_id combination exist, instead of adding >it as another record completely, >just add > > $vehicles[$existing_id][$row['company_id']] = $row['page_views']; > >The end result of this would be (if given two 'company_id' records for the >given dealer): > >( > [0] => Array > ( > [dealer_id] => 645 > [vehicle_id] => 35073 > [1] => 10 > ) > > [1] => Array > ( > [dealer_id] => 645 > [vehicle_id] => 35073 > [0] => 6 > ) >) > >Turns into: > >( > [0] => Array > ( > [dealer_id] => 645 > [vehicle_id] => 35073 > [1] => 10 > [0] => 6 > ) >) > >Can anyone think of a fast way to do this either during creation of the >array or after the array has been created? (A sort of fast_flatten($array) >function) ? > >If anyone can think of something, I'd be really appreciative. > > > >Cheers, >Morgan Grubb. > > > >-- >PHP General Mailing List (http://www.php.net/) >To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php