2013-07-29 3 views
-2

Как можно разбить строку с разными разделителями на массив?Как я могу разделить строку с разными разделителями на массив?

т.е. преобразовать это: «Интернет: 427; французский: 435» к этому:

'web' => 427, 
'french' => 435 
+0

Что такое разделитель? –

+0

С регулярным выражением или 'strtr' и' parse_str'. – mario

ответ

0

Как марио отметил, если вы не возражаете, используя регулярное выражение вы можете изменить 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); 
0

Это будет работать до тех пор, как ваша строка не содержат & или =.

$str = 'web:427;French:435'; 
$str = str_replace([';', ':'], ['&', '='], $str); 
parse_str($str, $array); 
print_r($array); 
Смежные вопросы