public function transform($rec) { global $mab_field_map; $r = array(); foreach ($mab_field_map as $field => $items) { foreach ($items as $item) { if ($this->fieldPrefix) { $item = fieldPrefix + $item; } if (!empty($rec[$item])) { if (is_array($rec[$item])) { if (empty($r[$field])) { $r[$field] = $rec[$item]; } else { $r[$field] = array_merge($r[$field], $rec[$item]); } } else { $r[$field][] = $rec[$item]; } break; } } } foreach ($r as $f => $values) { if (count($values) == 0) { unset($r[$f]); } elseif (count($values) == 1) { $r[$f] = MAB2RecordTransformer::mangleValue($values[0]); } else { $values = array_unique($values); $values = array_map(array('MAB2RecordTransformer', 'mangleValue'), $values); $r[$f] = join(', ', $values); } } return $r; }