code: protected function methodTable($array, $columns = array())
      {
          if (!\is_array($array)) {
              return $this->dump($array);
          }
          $table = array();
          $keys = $columns ?: $this->debug->methodTable->colKeys($array);
          $headerVals = $keys;
          foreach ($headerVals as $i => $val) {
              if ($val === MethodTable::SCALAR) {
                  $headerVals[$i] = 'value';
              }
          }
          \array_unshift($headerVals, '');
          $table[] = $headerVals;
          $classNames = array();
          if ($this->debug->abstracter->isAbstraction($array) && $array['traverseValues']) {
              $array = $array['traverseValues'];
          }
          foreach ($array as $k => $row) {
              $values = $this->debug->methodTable->keyValues($row, $keys, $objInfo);
              foreach ($values as $k2 => $val) {
                  if ($val === $this->debug->abstracter->UNDEFINED) {
                      $values[$k2] = null;
                  }
              }
              $classNames[] = $objInfo['row']
                  ? $objInfo['row']['className']
                  : '';
              \array_unshift($values, $k);
              $table[] = \array_values($values);
          }
          if (\array_filter($classNames)) {
              \array_unshift($table[0], '');
              // first col is row key.
              // insert classname after key
              foreach ($classNames as $i => $className) {
                  \array_splice($table[$i+1], 1, 0, $className);
              }
          }
          return $table;
      }
docs: Build table rows
  
  @param array $array   array to debug
  @param array $columns columns to display
  
  @return array