public function generateMultipleColumns($value, $error_name, $values, $parent_keys, $options = []) {
		if (!empty($value)) {
			if (!is_array($value)) {
				$value = [$value];
			}
			$result = [];
			$fields_key_holder = [];
			$this->generateDetailsPrimaryKey($fields_key_holder, 'reset', $values, $parent_keys, $options);
			foreach ($value as $k2 => $v2) {
				if (is_array($v2) && isset($v2[$options['options']['multiple_column']])) {
					$v2 = $v2[$options['options']['multiple_column']];
				}
				$temp = $this->validateDataTypesSingleValue($options['options']['multiple_column'], $options, $v2, $error_name);
				if (empty($temp['flag_error'])) {
					$temp_value_new = [
						$options['options']['multiple_column'] => $temp[$options['options']['multiple_column']]
					];
				} else {
					$temp_value_new = [
						$options['options']['multiple_column'] => $v2
					];
				}
				// process pk
				$this->generateDetailsPrimaryKey($fields_key_holder, 'pk', $temp_value_new, $parent_keys, $options);
				$k2 = $fields_key_holder['pk'];
				$result[$k2] = array_merge_hard($fields_key_holder['parent_pks'], $temp_value_new);
			}
			return $result;
		} else {
			return [];
		}
	}
public function generateMultipleColumns($value, $error_name, $values, $parent_keys, $options = []) {
		if (!empty($value)) {
			if (!is_array($value)) {
				$value = [$value];
			}
			$result = [];
			$fields_key_holder = [];
			$this->generateDetailsPrimaryKey($fields_key_holder, 'reset', $values, $parent_keys, $options);
			foreach ($value as $k2 => $v2) {
				if (is_array($v2) && isset($v2[$options['options']['multiple_column']])) {
					$v2 = $v2[$options['options']['multiple_column']];
				}
				$temp = $this->validateDataTypesSingleValue($options['options']['multiple_column'], $options, $v2, $error_name);
				if (empty($temp['flag_error'])) {
					$temp_value_new = [
						$options['options']['multiple_column'] => $temp[$options['options']['multiple_column']]
					];
				} else {
					$temp_value_new = [
						$options['options']['multiple_column'] => $v2
					];
				}
				// process pk
				$this->generateDetailsPrimaryKey($fields_key_holder, 'pk', $temp_value_new, $parent_keys, $options);
				$k2 = $fields_key_holder['pk'];
				$result[$k2] = array_merge_hard($fields_key_holder['parent_pks'], $temp_value_new);
			}
			return $result;
		} else {
			return [];
		}
	}
public function generateMultipleColumns ( $ value , $ error_name , $ values , $ parent_keys , $ options = [ ] ) { if ( ! empty ( $ value ) ) { if ( ! is_array ( $ value ) ) { $ value = [ $ value ] ; } $ result = [ ] ; $ fields_key_holder = [ ] ; $ this -> generateDetailsPrimaryKey ( $ fields_key_holder , 'reset' , $ values , $ parent_keys , $ options ) ; foreach ( $ value as $ k2 => $ v2 ) { if ( is_array ( $ v2 ) && isset ( $ v2 [ $ options [ 'options' ] [ 'multiple_column' ] ] ) ) { $ v2 = $ v2 [ $ options [ 'options' ] [ 'multiple_column' ] ] ; } $ temp = $ this -> validateDataTypesSingleValue ( $ options [ 'options' ] [ 'multiple_column' ] , $ options , $ v2 , $ error_name ) ; if ( empty ( $ temp [ 'flag_error' ] ) ) { $ temp_value_new = [ $ options [ 'options' ] [ 'multiple_column' ] => $ temp [ $ options [ 'options' ] [ 'multiple_column' ] ] ] ; } else { $ temp_value_new = [ $ options [ 'options' ] [ 'multiple_column' ] => $ v2 ] ; } // process pk $ this -> generateDetailsPrimaryKey ( $ fields_key_holder , 'pk' , $ temp_value_new , $ parent_keys , $ options ) ; $ k2 = $ fields_key_holder [ 'pk' ] ; $ result [ $ k2 ] = array_merge_hard ( $ fields_key_holder [ 'parent_pks' ] , $ temp_value_new ) ; } return $ result ; } else { return [ ] ; } }
Generate values for multiple columns

@param mixed $value
@param string $error_name
@param array $values
@param array $parent_keys
@param array $options
@return array
Generate values for multiple columns