runner = $runner; } /** * {@inheritdoc} */ protected function runPass(array $strings): array { return array_map([$this, 'recurseString'], $strings); } /** * Recurse into given string and run all passes on each element * * @param array $string * @return array */ protected function recurseString(array $string): array { $isOptional = $this->isOptional; foreach ($string as $k => $element) { if (is_array($element)) { $string[$k] = $this->runner->run($element); } } $this->isOptional = $isOptional; return $string; } }