@@ -35,8 +35,18 @@ protected function parseArray($value): array
3535 if (empty ($ value )) {
3636 return [];
3737 }
38- // Handle semicolon/comma/pipe separated values (common in CSV exports)
39- $ parts = preg_split ('/[;,|]/ ' , (string ) $ value );
38+ $ rawValue = (string ) $ value ;
39+
40+ // Prefer explicit multi-select delimiters first.
41+ // Falling back to comma splitting can break natural-language sentences.
42+ if (str_contains ($ rawValue , '; ' )) {
43+ $ parts = explode ('; ' , $ rawValue );
44+ } elseif (str_contains ($ rawValue , '| ' )) {
45+ $ parts = explode ('| ' , $ rawValue );
46+ } else {
47+ $ parts = explode (', ' , $ rawValue );
48+ }
49+
4050 return array_filter (array_map (function ($ item ) {
4151 $ item = trim ((string ) $ item );
4252 $ item = trim ($ item , " \t\n\r\0\x0B. " );
@@ -417,6 +427,8 @@ public function model(array $row): ?Model
417427 $ whyVolunteeringValue = $ this ->getRowValue ($ row , [
418428 'why_are_you_volunteering ' ,
419429 'Why are you volunteering? ' ,
430+ 'why_are_you_volunteering_tell_us_more_about_yourself_and_your_expertise ' ,
431+ 'Why are you volunteering? Tell us more about yourself and your expertise. ' ,
420432 'why_volunteering ' ,
421433 'Why Volunteering ' ,
422434 ]);
0 commit comments