get_allowed_properties(); $transition_strings = array_map( function( $transition ) use ( $allowed_properties ) { return $this->map_to_transition_string( $transition, $allowed_properties ); }, $transitions ); $valid_transitions = array_filter( $transition_strings ); return implode( ', ', $valid_transitions ); } private function map_to_transition_string( $transition, array $allowed_properties ): string { if ( empty( $transition['selection'] ) || empty( $transition['size'] ) ) { return self::EMPTY_STRING; } $selection = $transition['selection']; $size = $transition['size']; if ( empty( $selection['value'] ) ) { return self::EMPTY_STRING; } $property = $selection['value']; if ( ! in_array( $property, $allowed_properties, true ) ) { return self::EMPTY_STRING; } return trim( "{$property} {$size}" ); } }