2016-05-11 3 views
1

У меня есть строка в следующем формате: city (Country) и я хотел бы отделить город и страну и хранить значения в 2-х различных переменных.Разбивает строку на 2 переменные в PHP

Я пробовал следующее, и он работает, чтобы хранить город, но не для страны.

<?php 

$citysearch = "Madrid (Spain)"; 
echo $citysearch; 

$citylen = strlen($citysearch); 
for($i = 0; $i <= $citylen; $i++) 
{ 
    $char = substr($citysearch, $i, 1); 
    if ($char <> "(") 
    { 
    echo $city. "<br>"; 
    $city = $city .$char; 
    if ($char == " ") 
    { 
     break; 
    } 
    } 
    if ($char <> ")") 
    { 
    echo $country. "<br>"; 
    $country = $country .$char; 
    if ($char == ")") 
    { 
     break; 
    } 
    } 
} 

echo "This is the city:" .$city; 
echo "This is the country:" . $country;; 

?> 

Любая помощь будет высоко оценена.

+1

Если это всегда в том же формате, взгляните на [preg_match] (http://php.net/preg_match). –

+0

@SamueldelRio, ваш ответ готов. [Проверить] (http://stackoverflow.com/questions/37167965/split-a-string-into-2-variables-in-php/37168130#37168130) –

ответ

3

Вы можете использовать простое регулярное выражение, чтобы решить этот:

preg_match('/^(\w*)\s\((\w*)\)$/', $citysearch, $matches); 
var_dump($matches); 
echo "city: ".$matches[1]."\n"; 
echo "country: ".$matches[2]."\n"; 

Update:
Или без регулярных выражений:

$citysearch = 'Madrid (Spain)'; 
$pos = strpos($citysearch, ' ('); 
$city = substr($citysearch, 0, $pos); 
$country = substr($citysearch, $pos + 2, -1); 
+0

Отлично !!! благодаря – Sam

0

Я думаю, вы должны пойти с этим простым примером:

Просто взорвите строку с помощью функции explode, затем храните город в $city переменная и сохранить страну в $country переменная.

После взрыва строки вы получите массив, где в индексе 0 значение Madrid, а индекс 1 - (Spain). Таким образом, его легко получить город, используя $div[0], но для страны вам нужно использовать пространственную функцию, которая называется trim, для очистки (). и используйте $div[1], чтобы получить страну.

Пример:

$citysearch = "Madrid (Spain)"; 
$div = explode(" ", $citysearch); 

echo $city = $div[0]; //Madrid 
echo $country = trim($div[1], "()"); //Spain 
0

использованием взрываются

$citysearch = "Madrid (Spain)"; 
$ar =explode("(",$citysearch,2); 
$ar[1]=rtrim($ar[1],")"); 
$city = $ar[0]; 
$country = $ar[1]; 
1

Использование explode в PHP:

<?php 
$citysearch = "Madrid (Spain)"; 
$myArray = explode('(', $citysearch); 
print($myArray[0]); 
print(rtrim($myArray[1], ")")); 
?> 

Использование preg_split:

<?php 
$citysearch = "Madrid (Spain)"; 
$iparr = preg_split ("/\(/", rtrim($citysearch, ")")); 
print($iparr[0]); 
print($iparr[1]); 
?> 

Выход:

Madrid Spain 
Смежные вопросы