строка — php Как добавить запятую в массив, не делая его отдельными значениями?

Моя строка:

'KCP-PRO;first_name last_name;address;zipcode;country' //for example: 'KCP-PRO;Jon Doe;Box 564;02201;USA'
or
'KCP-SAT-PRO;first_name last_name;address;zipcode;country'

Как я могу изменить первую часть (KCP-PRO или KCP-SAT-PRO) и изменить ее на (KCP, PRO или KCP, SAT, PRO)? Результат должен быть:

'KCP,PRO;first_name last_name;address;zipcode;country'
or
'KCP,SAT,PRO;first_name last_name;address;zipcode;country'

2

Решение

Я сам не пробовал код, но думаю, это поможет

$string = 'KCP-SAT-PRO;first_name last_name;address;zipcode;country';

$stringExploded = explode(';', $string);
$stringExploded[0] = str_replace('-', ',', $stringExploded[0]);
$output = implode(';', $stringExploded);

//output should be KCP,SAT,PRO;first_name last_name;address;zipcode;country

Надеюсь это поможет 🙂

3

Другие решения

Или вы можете использовать preg_replace_callback функция со следующим регулярным выражением

^[^;]*

Итак, ваш код выглядит как

echo preg_replace_callback("/^[^;]*/",function($m){
return str_replace("-",',',$m[0]);
},"KCP-SAT-PRO;first_name last_name;address;zipcode;country");
1

По вопросам рекламы [email protected]