Advertisement
arijulianto

merge-table2.php

Nov 26th, 2018
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.14 KB | None | 0 0
  1. <?php
  2. // db output
  3. $data = array(
  4.     array(
  5.         'no' =>0,
  6.         'jur' => 'maju',
  7.         'kel' => 'ada',
  8.     ),
  9.     array(
  10.         'no' =>1,
  11.         'jur' => 'maju',
  12.         'kel' => 'ada',
  13.     ),
  14.     array(
  15.         'no' =>2,
  16.         'jur' => 'maju',
  17.         'kel' => 'ada',
  18.     ),
  19.     array(
  20.         'no' =>3,
  21.         'jur' => 'maju',
  22.         'kel' => 'ada',
  23.     ),
  24.     array(
  25.         'no' =>4,
  26.         'jur' => 'mundur',
  27.         'kel' => 'ada',
  28.     ),
  29.     array(
  30.         'no' =>5,
  31.         'jur' => 'naik',
  32.         'kel' => 'ada',
  33.     ),
  34.     array(
  35.         'no' =>6,
  36.         'jur' => 'naik',
  37.         'kel' => 'ada',
  38.     ),
  39.     array(
  40.         'no' =>7,
  41.         'jur' => 'turun',
  42.         'kel' => 'ada',
  43.     ),
  44.     array(
  45.         'no' =>8,
  46.         'jur' => 'turun',
  47.         'kel' => 'ada',
  48.     ),
  49.     array(
  50.         'no' =>9,
  51.         'jur' => 'turun',
  52.         'kel' => 'ada',
  53.     ),
  54.     array(
  55.         'no' =>10,
  56.         'jur' => 'maju',
  57.         'kel' => 'ada',
  58.     ),
  59.     array(
  60.         'no' =>11,
  61.         'jur' => 'maju',
  62.         'kel' => 'ada',
  63.     ),
  64. );
  65. // array merge
  66. foreach($data as $i=>$m){
  67.     $arrdata[$i] = $m['jur']; // data yg di-merge (all)
  68.     $arritem[$m['jur']] = $m['jur']; // data yg di-merge (unique)
  69. }
  70.  
  71. $str = implode(',', $arrdata); // data all dibuat jadi string
  72. // data yg sama di-replace koma jd strip agar ter-grouping
  73. foreach($arritem as $replaceKata){
  74.     // setiap data unik diubah pemisah string jd strip
  75.     foreach($arritem as $m) $str = str_replace("$replaceKata,$replaceKata", "$replaceKata-$replaceKata", $str);
  76. }
  77.  
  78. // pecah ulang by koma untuk mengambil grouping
  79. $n = 0;
  80. $rowspan = array();
  81. $arr = explode(',', $str);
  82. foreach($arr as $txt){
  83.     // satu grup dipecah lagi by strip untuk mengambil ada brp data
  84.     $et = explode('-', $txt);
  85.     // buat array dgn format => $arr[rowKe] = jmlRowspan
  86.     $rowspan[$n] = count($et);
  87.     $n += count($et); // counter inisiator jumlah data (row)
  88. }
  89.  
  90. //echo '<pre>';print_r($rowspan);echo'</pre>';
  91.  
  92. echo '<table border=1><tr><th>no</th><th>jur</th><th>kel</th></tr>',"\n";
  93. foreach($data as $i=>$row){
  94.     echo '<tr>',"\n";
  95.     echo '  <td>',$row['no'],'</td>',"\n";
  96.     if($rowspan[$i]){
  97.         if($rowspan[$i]>1)
  98.             echo '  <td rowspan=',$rowspan[$i],'>',$row['jur'],'</td>',"\n";
  99.         else
  100.             echo '  <td>',$row['jur'],'</td>',"\n";
  101.     }
  102.     echo '  <td>',$row['kel'],'</td>',"\n";
  103.     echo '</tr>',"\n";
  104.     $jur = $row['jur'];
  105. }
  106. echo '</table>';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement