Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
   1  <?php
   2  
   3  declare(strict_types=1);
   4  
   5  namespace Phpml\Preprocessing;
   6  
   7  final class ColumnFilter implements Preprocessor
   8  {
   9      /**
  10       * @var string[]
  11       */
  12      private $datasetColumns = [];
  13  
  14      /**
  15       * @var string[]
  16       */
  17      private $filterColumns = [];
  18  
  19      public function __construct(array $datasetColumns, array $filterColumns)
  20      {
  21          $this->datasetColumns = array_map(static function (string $column): string {
  22              return $column;
  23          }, $datasetColumns);
  24          $this->filterColumns = array_map(static function (string $column): string {
  25              return $column;
  26          }, $filterColumns);
  27      }
  28  
  29      public function fit(array $samples, ?array $targets = null): void
  30      {
  31          //nothing to do
  32      }
  33  
  34      public function transform(array &$samples, ?array &$targets = null): void
  35      {
  36          $keys = array_intersect($this->datasetColumns, $this->filterColumns);
  37  
  38          foreach ($samples as &$sample) {
  39              $sample = array_values(array_intersect_key($sample, $keys));
  40          }
  41      }
  42  }