Advertisement
Guest User

wtf

a guest
Aug 7th, 2014
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.36 KB | None | 0 0
  1. function cmp($a, $b) {
  2.     return strcomp($a['level4'], $b['level4']);
  3. }
  4.  
  5. foreach ($rows as $i => $row) {
  6.     if ($row['number'] > 1) {
  7.         $lowestRow = 0;
  8.         $lowest = 1000;
  9.         foreach ($rows as $j => $row2) {
  10.             $diff = array_intersect_assoc($row, $row2);
  11.             if (array_key_exists('level1', $diff) && array_key_exists('level2', $diff) && array_key_exists('level3', $diff)) {
  12.                 if ($lowest > $row['number']) {
  13.                     $lowest = $row['number'];
  14.                     $lowestRow = $j;
  15.                 }
  16.             }
  17.         }
  18.        
  19.         $rows[$lowestRow]['number'] = 1;
  20.        
  21.         $oldLowestRow = $lowestRow;
  22.         uksort($rows, 'cmp');
  23.         foreach($rows as $j => $row2) {
  24.             if ($j != $oldLowestRow) {
  25.                 $diff = array_intersect_assoc($row2, $rows[$lowestRow]);
  26.                 if (array_key_exists('level1', $diff) && array_key_exists('level2', $diff) && array_key_exists('level3', $diff) && array_key_exists('level4', $diff)) {
  27.                     $rows[$lowestRow]['value'] += $row2['value'];
  28.                     if ($row2['value'] != 'a') {
  29.                         $rows[$lowestRow]['total'] += $row2['total'];
  30.                     }
  31.                     if ($rows[$lowestRow]['value'] == 'a' && ($row2['value'] != 'a' && $row2['value'] != '*')) {
  32.                         $rows[$lowestRow]['value'] = $row2['value'];
  33.                     }
  34.                     unset($rows[$j]);
  35.                 } else {
  36.                     if (array_key_exists('level1', $diff) && array_key_exists('level2', $diff) && array_key_exists('level3', $diff)) {
  37.                         $lowestRow = $j;
  38.                     }
  39.                 }
  40.             }
  41.         }
  42.     }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement