public static function processSingleColumn($column_name, $column_options, $data, $options = []) {
		$result = [];
		// process domain
		if (!empty($options['process_domains'])) {
			$temp = [$column_name => $column_options];
			$temp = \Object\Data\Common::processDomainsAndTypes($temp);
			$column_options = $temp[$column_name];
		}
		// if we ignoring not set fields
		if (!empty($options['ignore_not_set_fields']) && !array_key_exists($column_name, $data)) {
			return $result;
		}
		// processing
		$value = $data[$column_name] ?? null;
		if (is_array($value)) {
			$result2 = [];
			foreach ($value as $k => $v) {
				$temp = self::processSingleColumnType($column_name, $column_options, $v, ['ignore_defaults' => $options['ignore_defaults'] ?? false]);
				if (array_key_exists($column_name, $temp) && $temp[$column_name] !== null) {
					$result2[] = $temp[$column_name];
				}
			}
			$result[$column_name] = $result2;
		} else {
			$result = self::processSingleColumnType($column_name, $column_options, $value, ['ignore_defaults' => $options['ignore_defaults'] ?? false]);
		}
		return $result;
	}
public static function processSingleColumn($column_name, $column_options, $data, $options = []) {
		$result = [];
		// process domain
		if (!empty($options['process_domains'])) {
			$temp = [$column_name => $column_options];
			$temp = \Object\Data\Common::processDomainsAndTypes($temp);
			$column_options = $temp[$column_name];
		}
		// if we ignoring not set fields
		if (!empty($options['ignore_not_set_fields']) && !array_key_exists($column_name, $data)) {
			return $result;
		}
		// processing
		$value = $data[$column_name] ?? null;
		if (is_array($value)) {
			$result2 = [];
			foreach ($value as $k => $v) {
				$temp = self::processSingleColumnType($column_name, $column_options, $v, ['ignore_defaults' => $options['ignore_defaults'] ?? false]);
				if (array_key_exists($column_name, $temp) && $temp[$column_name] !== null) {
					$result2[] = $temp[$column_name];
				}
			}
			$result[$column_name] = $result2;
		} else {
			$result = self::processSingleColumnType($column_name, $column_options, $value, ['ignore_defaults' => $options['ignore_defaults'] ?? false]);
		}
		return $result;
	}
public static function processSingleColumn ( $ column_name , $ column_options , $ data , $ options = [ ] ) { $ result = [ ] ; // process domain if ( ! empty ( $ options [ 'process_domains' ] ) ) { $ temp = [ $ column_name => $ column_options ] ; $ temp = \ Object \ Data \ Common :: processDomainsAndTypes ( $ temp ) ; $ column_options = $ temp [ $ column_name ] ; } // if we ignoring not set fields if ( ! empty ( $ options [ 'ignore_not_set_fields' ] ) && ! array_key_exists ( $ column_name , $ data ) ) { return $ result ; } // processing $ value = $ data [ $ column_name ] ?? null ; if ( is_array ( $ value ) ) { $ result2 = [ ] ; foreach ( $ value as $ k => $ v ) { $ temp = self :: processSingleColumnType ( $ column_name , $ column_options , $ v , [ 'ignore_defaults' => $ options [ 'ignore_defaults' ] ?? false ] ) ; if ( array_key_exists ( $ column_name , $ temp ) && $ temp [ $ column_name ] !== null ) { $ result2 [ ] = $ temp [ $ column_name ] ; } } $ result [ $ column_name ] = $ result2 ; } else { $ result = self :: processSingleColumnType ( $ column_name , $ column_options , $ value , [ 'ignore_defaults' => $ options [ 'ignore_defaults' ] ?? false ] ) ; } return $ result ; }
Process single column

@param string $column_name
@param array $column_options
@param array $data
@param array $options
@return array
Process single column