Как можно разбить строку с разными разделителями на массив?Как я могу разделить строку с разными разделителями на массив?
т.е. преобразовать это: «Интернет: 427; французский: 435» к этому:
'web' => 427,
'french' => 435
Как можно разбить строку с разными разделителями на массив?Как я могу разделить строку с разными разделителями на массив?
т.е. преобразовать это: «Интернет: 427; французский: 435» к этому:
'web' => 427,
'french' => 435
Как марио отметил, если вы не возражаете, используя регулярное выражение вы можете изменить this answer в соответствии с вашими потребностями. Если вы хотите сделать это без регулярных выражений попробовать это: (будет работать до тех пор, как ваша строка не имеет :
и ;
внутри имен переменных или значений)
$str = 'web:427;French:435';
$array = explode(';',$str); // first explode by semicolon to saparate the variables
$result = array();
foreach($array as $key=>$value){
$temp = explode(':',$value); // explode each variable by colon to get name and value
$array[$temp[0]]= $temp[1];
}
print_r($result);
Это будет работать до тех пор, как ваша строка не содержат &
или =
.
$str = 'web:427;French:435';
$str = str_replace([';', ':'], ['&', '='], $str);
parse_str($str, $array);
print_r($array);
Что такое разделитель? –
С регулярным выражением или 'strtr' и' parse_str'. – mario