original_string: public function deleteColumns($names, $deleteRecursiveInSubtables = false)
      {
          foreach ($this->rows as $row) {
              foreach ($names as $name) {
                  $row->deleteColumn($name);
              }
              $subTable = $row->getSubtable();
              if ($subTable) {
                  $subTable->deleteColumns($names, $deleteRecursiveInSubtables);
              }
          }
          if (!is_null($this->summaryRow)) {
              foreach ($names as $name) {
                  $this->summaryRow->deleteColumn($name);
              }
          }
          if (!is_null($this->totalsRow)) {
              foreach ($names as $name) {
                  $this->totalsRow->deleteColumn($name);
              }
          }
      }
code: public function deleteColumns($names, $deleteRecursiveInSubtables = false)
      {
          foreach ($this->rows as $row) {
              foreach ($names as $name) {
                  $row->deleteColumn($name);
              }
              $subTable = $row->getSubtable();
              if ($subTable) {
                  $subTable->deleteColumns($names, $deleteRecursiveInSubtables);
              }
          }
          if (!is_null($this->summaryRow)) {
              foreach ($names as $name) {
                  $this->summaryRow->deleteColumn($name);
              }
          }
          if (!is_null($this->totalsRow)) {
              foreach ($names as $name) {
                  $this->totalsRow->deleteColumn($name);
              }
          }
      }
code_tokens: public function deleteColumns ( $ names , $ deleteRecursiveInSubtables = false ) { foreach ( $ this -> rows as $ row ) { foreach ( $ names as $ name ) { $ row -> deleteColumn ( $ name ) ; } $ subTable = $ row -> getSubtable ( ) ; if ( $ subTable ) { $ subTable -> deleteColumns ( $ names , $ deleteRecursiveInSubtables ) ; } } if ( ! is_null ( $ this -> summaryRow ) ) { foreach ( $ names as $ name ) { $ this -> summaryRow -> deleteColumn ( $ name ) ; } } if ( ! is_null ( $ this -> totalsRow ) ) { foreach ( $ names as $ name ) { $ this -> totalsRow -> deleteColumn ( $ name ) ; } } }
docstring: Deletes several columns by name in every row.
  
  @param array $names List of column names to delete.
  @param bool $deleteRecursiveInSubtables Whether to apply this change to all subtables or not.
docstring_tokens: Deletes several columns by name in every row .