public static function removeRoColumns(array $rules, $engine)
    {
        foreach ($rules as $index => $subrules) {
            if (is_array($subrules)) {
                $eback         = $engine->getEvidence();
                $engine->setEvidence($engine->getEvidence().'-polozka');
                $rules[$index] = self::removeRoColumns($subrules, $engine);
                $engine->setEvidence($eback);
            } else {
                $columnInfo = $engine->getColumnInfo($subrules);
                if ($columnInfo['isWritable'] == 'false') {
                    unset($rules[$index]);
                }
            }
        }
        return $rules;
    }
public static function removeRoColumns(array $rules, $engine)
    {
        foreach ($rules as $index => $subrules) {
            if (is_array($subrules)) {
                $eback         = $engine->getEvidence();
                $engine->setEvidence($engine->getEvidence().'-polozka');
                $rules[$index] = self::removeRoColumns($subrules, $engine);
                $engine->setEvidence($eback);
            } else {
                $columnInfo = $engine->getColumnInfo($subrules);
                if ($columnInfo['isWritable'] == 'false') {
                    unset($rules[$index]);
                }
            }
        }
        return $rules;
    }
public static function removeRoColumns ( array $ rules , $ engine ) { foreach ( $ rules as $ index => $ subrules ) { if ( is_array ( $ subrules ) ) { $ eback = $ engine -> getEvidence ( ) ; $ engine -> setEvidence ( $ engine -> getEvidence ( ) . '-polozka' ) ; $ rules [ $ index ] = self :: removeRoColumns ( $ subrules , $ engine ) ; $ engine -> setEvidence ( $ eback ) ; } else { $ columnInfo = $ engine -> getColumnInfo ( $ subrules ) ; if ( $ columnInfo [ 'isWritable' ] == 'false' ) { unset ( $ rules [ $ index ] ) ; } } } return $ rules ; }
Returns only writable columns

@param array                  $rules   all Columns
@param \FlexiPeeHP\FlexiBeeRW $engine  saver class
Returns only writable columns