public function setColumnsOrder(array $columnIds, $keepOtherColumns = true)
    {
        $reorderedColumns = [];
        $columnsIndexedByIds = [];

        foreach ($this->columns as $column) {
            $columnsIndexedByIds[$column->getId()] = $column;
        }

        foreach ($columnIds as $columnId) {
            if (isset($columnsIndexedByIds[$columnId])) {
                $reorderedColumns[] = $columnsIndexedByIds[$columnId];
                unset($columnsIndexedByIds[$columnId]);
            }
        }

        if ($keepOtherColumns) {
            $this->columns = array_merge($reorderedColumns, array_values($columnsIndexedByIds));
        } else {
            $this->columns = $reorderedColumns;
        }

        return $this;
    }
public function setColumnsOrder(array $columnIds, $keepOtherColumns = true)
    {
        $reorderedColumns = [];
        $columnsIndexedByIds = [];

        foreach ($this->columns as $column) {
            $columnsIndexedByIds[$column->getId()] = $column;
        }

        foreach ($columnIds as $columnId) {
            if (isset($columnsIndexedByIds[$columnId])) {
                $reorderedColumns[] = $columnsIndexedByIds[$columnId];
                unset($columnsIndexedByIds[$columnId]);
            }
        }

        if ($keepOtherColumns) {
            $this->columns = array_merge($reorderedColumns, array_values($columnsIndexedByIds));
        } else {
            $this->columns = $reorderedColumns;
        }

        return $this;
    }
public function setColumnsOrder ( array $ columnIds , $ keepOtherColumns = true ) { $ reorderedColumns = [ ] ; $ columnsIndexedByIds = [ ] ; foreach ( $ this -> columns as $ column ) { $ columnsIndexedByIds [ $ column -> getId ( ) ] = $ column ; } foreach ( $ columnIds as $ columnId ) { if ( isset ( $ columnsIndexedByIds [ $ columnId ] ) ) { $ reorderedColumns [ ] = $ columnsIndexedByIds [ $ columnId ] ; unset ( $ columnsIndexedByIds [ $ columnId ] ) ; } } if ( $ keepOtherColumns ) { $ this -> columns = array_merge ( $ reorderedColumns , array_values ( $ columnsIndexedByIds ) ) ; } else { $ this -> columns = $ reorderedColumns ; } return $ this ; }
Sets order of Columns passing an array of column ids
If the list of ids is uncomplete, the remaining columns will be
placed after if keepOtherColumns is true.

@param array $columnIds
@param bool  $keepOtherColumns

@return Columns
Sets order of Columns passing an array of column ids If the list of ids is uncomplete the remaining columns will be placed after if keepOtherColumns is true .