在PHP中将一个字符串拆分为2个变量


Split a string into 2 variables in PHP

我有一个格式如下的字符串:city (Country)和我想将城市国家分开,并将值存储在两个不同的变量中。

我尝试了以下方法,它可以储存城市,但不能储存国家。

<?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;;
?>

如有任何帮助,我们将不胜感激。

您可以使用一个简单的正则表达式来解决此问题:

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

更新:
或者不带正则表达式:

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

在php:中使用explode

<?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

我认为您应该使用这个简单的示例:

只需使用explode函数分解字符串,然后将城市存储在$city变量中,将国家存储在$country变量中。

分解字符串后,您将得到一个数组,其中索引0中的值为Madrid,索引1为(Spain)。因此,使用$div[0]很容易获得城市,但对于国家,您需要使用一个名为trim的空间函数来清除()。并使用CCD_ 12获取国家。

示例:

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

使用爆炸

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