<?php
array ( 'id' => 1 , 'item_name' => 'item name 01' , 'item_group_id' => 101 ) , array ( 'id' => 2 , 'item_name' => 'item name 02' , 'item_group_id' => 105 ) , array ( 'id' => 3 , 'item_name' => 'item name 03' , 'item_group_id' => 101 ) , array ( 'id' => 4 , 'item_name' => 'item name 04' , 'item_group_id' => 104 ) , array ( 'id' => 5 , 'item_name' => 'item name 05' , 'item_group_id' => 103 ) , array ( 'id' => 6 , 'item_name' => 'item name 06' , 'item_group_id' => 105 ) , array ( 'id' => 7 , 'item_name' => 'item name 07' , 'item_group_id' => 104 ) , array ( 'id' => 8 , 'item_name' => 'item name 08' , 'item_group_id' => 105 ) , array ( 'id' => 9 , 'item_name' => 'item name 09' , 'item_group_id' => 102 ) , array ( 'id' => 10 , 'item_name' => 'item name 10' , 'item_group_id' => 101 ) , array ( 'id' => 11 , 'item_name' => 'item name 11' , 'item_group_id' => 105 ) ) ;
foreach ( $rows as $row ) {
$group_id = $row [ 'item_group_id' ] ;
if ( isset ( $data [ $group_id ] ) ) { $data [ $group_id ] [ 'names' ] [ ] = $row [ 'item_name' ] ;
$data [ $group_id ] [ 'count' ] ++;
} else {
$data [ $group_id ] = array ( 'names' => array ( $row [ 'item_name' ] ) , 'count' => 1 ) ; }
}
echo "<table border='1'>\n " ;
foreach ( $data as $group_id => & $subarray ) {
$group_size = max ( round ( $subarray [ 'count' ] / $divisor ) , 1 ) ; foreach ( $group as $name ) {
echo "<tr><td>$group_id </td><td>$name </td></tr>\n " ;
}
if ( empty ( $subarray [ 'names' ] ) ) { }
}
}
echo '</table>' ;
// your code goes here
PD9waHAKJHJvd3MgPSBhcnJheSgKICAgICAgICAgICAgICBhcnJheSgnaWQnPT4xLCdpdGVtX25hbWUnPT4gJ2l0ZW0gbmFtZSAwMScsJ2l0ZW1fZ3JvdXBfaWQnPT4gMTAxKSwKICAgICAgICAgICAgICBhcnJheSgnaWQnPT4yLCdpdGVtX25hbWUnPT4gJ2l0ZW0gbmFtZSAwMicsJ2l0ZW1fZ3JvdXBfaWQnPT4gMTA1KSwKICAgICAgICAgICAgICBhcnJheSgnaWQnPT4zLCdpdGVtX25hbWUnPT4gJ2l0ZW0gbmFtZSAwMycsJ2l0ZW1fZ3JvdXBfaWQnPT4gMTAxKSwKICAgICAgICAgICAgICBhcnJheSgnaWQnPT40LCdpdGVtX25hbWUnPT4gJ2l0ZW0gbmFtZSAwNCcsJ2l0ZW1fZ3JvdXBfaWQnPT4gMTA0KSwKICAgICAgICAgICAgICBhcnJheSgnaWQnPT41LCdpdGVtX25hbWUnPT4gJ2l0ZW0gbmFtZSAwNScsJ2l0ZW1fZ3JvdXBfaWQnPT4gMTAzKSwKICAgICAgICAgICAgICBhcnJheSgnaWQnPT42LCdpdGVtX25hbWUnPT4gJ2l0ZW0gbmFtZSAwNicsJ2l0ZW1fZ3JvdXBfaWQnPT4gMTA1KSwKICAgICAgICAgICAgICBhcnJheSgnaWQnPT43LCdpdGVtX25hbWUnPT4gJ2l0ZW0gbmFtZSAwNycsJ2l0ZW1fZ3JvdXBfaWQnPT4gMTA0KSwKICAgICAgICAgICAgICBhcnJheSgnaWQnPT44LCdpdGVtX25hbWUnPT4gJ2l0ZW0gbmFtZSAwOCcsJ2l0ZW1fZ3JvdXBfaWQnPT4gMTA1KSwKICAgICAgICAgICAgICBhcnJheSgnaWQnPT45LCdpdGVtX25hbWUnPT4gJ2l0ZW0gbmFtZSAwOScsJ2l0ZW1fZ3JvdXBfaWQnPT4gMTAyKSwKICAgICAgICAgICAgICBhcnJheSgnaWQnPT4xMCwnaXRlbV9uYW1lJz0+ICdpdGVtIG5hbWUgMTAnLCdpdGVtX2dyb3VwX2lkJz0+IDEwMSksCiAgICAgICAgICAgICAgYXJyYXkoJ2lkJz0+MTEsJ2l0ZW1fbmFtZSc9PiAnaXRlbSBuYW1lIDExJywnaXRlbV9ncm91cF9pZCc9PiAxMDUpCiAgICAgICAgICAgICAgKTsKCiRkYXRhID0gYXJyYXkoKTsKZm9yZWFjaCAoJHJvd3MgYXMgJHJvdykgewogICAgJGdyb3VwX2lkID0gJHJvd1snaXRlbV9ncm91cF9pZCddOwogICAgaWYgKGlzc2V0KCRkYXRhWyRncm91cF9pZF0pKSB7CiAgICAgICAgJGRhdGFbJGdyb3VwX2lkXVsnbmFtZXMnXVtdID0gJHJvd1snaXRlbV9uYW1lJ107CiAgICAgICAgJGRhdGFbJGdyb3VwX2lkXVsnY291bnQnXSsrOwogICAgfSBlbHNlIHsKICAgICAgICAkZGF0YVskZ3JvdXBfaWRdID0gYXJyYXkoJ25hbWVzJyA9PiBhcnJheSgkcm93WydpdGVtX25hbWUnXSksICdjb3VudCcgPT4gMSk7CiAgICB9Cn0KCiRkaXZpc29yID0gY291bnQoJGRhdGEpOwplY2hvICI8dGFibGUgYm9yZGVyPScxJz5cbiI7CndoaWxlICghZW1wdHkoJGRhdGEpKSB7CiAgICBmb3JlYWNoICgkZGF0YSBhcyAkZ3JvdXBfaWQgPT4gJiRzdWJhcnJheSkgewogICAgICAgICRncm91cF9zaXplID0gbWF4KHJvdW5kKCRzdWJhcnJheVsnY291bnQnXS8kZGl2aXNvciksIDEpOwogICAgICAgICRncm91cCA9IGFycmF5X3NwbGljZSgkc3ViYXJyYXlbJ25hbWVzJ10sIDAsICRncm91cF9zaXplKTsKICAgICAgICBmb3JlYWNoICgkZ3JvdXAgYXMgJG5hbWUpIHsKICAgICAgICAgICAgZWNobyAiPHRyPjx0ZD4kZ3JvdXBfaWQ8L3RkPjx0ZD4kbmFtZTwvdGQ+PC90cj5cbiI7CiAgICAgICAgfQogICAgICAgIGlmIChlbXB0eSgkc3ViYXJyYXlbJ25hbWVzJ10pKSB7CiAgICAgICAgICAgIHVuc2V0KCRkYXRhWyRncm91cF9pZF0pOwogICAgICAgIH0KICAgIH0KfQplY2hvICc8L3RhYmxlPic7CgovLyB5b3VyIGNvZGUgZ29lcyBoZXJl