original_string: protected function _render(array $row, $widths, $options = [])
      {
          if (count($row) === 0) {
              return;
          }
  
          $out = '';
          foreach (array_values($row) as $i => $column) {
              $pad = $widths[$i] - $this->_cellWidth($column);
              if (!empty($options['style'])) {
                  $column = $this->_addStyle($column, $options['style']);
              }
              $out .= '| ' . $column . str_repeat(' ', $pad) . ' ';
          }
          $out .= '|';
          $this->_io->out($out);
      }
code: protected function _render(array $row, $widths, $options = [])
      {
          if (count($row) === 0) {
              return;
          }
  
          $out = '';
          foreach (array_values($row) as $i => $column) {
              $pad = $widths[$i] - $this->_cellWidth($column);
              if (!empty($options['style'])) {
                  $column = $this->_addStyle($column, $options['style']);
              }
              $out .= '| ' . $column . str_repeat(' ', $pad) . ' ';
          }
          $out .= '|';
          $this->_io->out($out);
      }
code_tokens: protected function _render ( array $ row , $ widths , $ options = [ ] ) { if ( count ( $ row ) === 0 ) { return ; } $ out = '' ; foreach ( array_values ( $ row ) as $ i => $ column ) { $ pad = $ widths [ $ i ] - $ this -> _cellWidth ( $ column ) ; if ( ! empty ( $ options [ 'style' ] ) ) { $ column = $ this -> _addStyle ( $ column , $ options [ 'style' ] ) ; } $ out .= '| ' . $ column . str_repeat ( ' ' , $ pad ) . ' ' ; } $ out .= '|' ; $ this -> _io -> out ( $ out ) ; }
docstring: Output a row.
  
  @param array $row The row to output.
  @param array $widths The widths of each column to output.
  @param array $options Options to be passed.
  @return void
docstring_tokens: Output a row .