/** * 一つのお題を表す配列を、CSVのレコードに変換します。 * @param (string|string[]|float)[][] $word * @param string[] $fieldNames * @param (string|string[])[] $metadata * @return string[] */ protected function convertWordToRecord(array $word, array $fieldNames, array $metadata) : array { $numberValidator = new NumberValidator(); $output = []; foreach ($fieldNames as $fieldName) { $field = isset($word[$fieldName][0]) ? array_shift($word[$fieldName]) : (isset($metadata[$fieldName]) ? $metadata[$fieldName] : ''); if (is_array($field)) { $field = $field['lml']; } elseif (is_float($field)) { $field = $numberValidator->serializeFloat($field); } $output[] = $field; } return $output; }