拿一个字符串的一部分(PHP)

时间:2010-09-27 08:43:17

标签: php string

我们正试图获取String的某些部分。

我们有字符串:

location:32:DaD+LoC:102AD:Ammount:294

我们希望将信息放在不同的字符串中。例如$location=32$Dad+Loc=102AD

每个字符串的值会有所不同,但它始终具有以下结构: location:{number}:DaD+LoC:{code}:Ammount:{number}

那么......我们如何获得这些价值?

6 个答案:

答案 0 :(得分:3)

这会产生你想要的东西,但是例如$ dad + Loc在PHP中是一个无效的变量名,所以它不会按照你想要的方式工作,更好地使用数组或stdClass对象而不是单个变量。

  $string = "location:32:DaD+LoC:102AD:Ammount:294";
  $stringParts = explode(":",$string);
  $variableHolder = array();
  for($i = 0;$i <= count($stringParts);$i = $i+2){
      ${$stringParts[$i]} = $stringParts[$i+1];
  }

  var_dump($location,$DaD+LoC,$Ammount);

答案 1 :(得分:2)

$ StringArray = explode(“:”,$ string)

答案 2 :(得分:2)

轻松快进的方法:

$string = "location:32:DaD+LoC:102AD:Ammount:294";

$arr = explode(":",$string);

$location= $arr[1];
$DaD_LoC= $arr[3];
$Ammount= $arr[5];

答案 3 :(得分:2)

使用preg_split并将结果数组映射为关联数组。 像这样:

$str  = 'location:32:DaD+LoC:102AD:Ammount:294';
$list = preg_split('/:/', $str);

$result = array();
for ($i = 0; $i < sizeof($list); $i = $i+2) {
    $result[$array[$i]] = $array[$i+1];
};

print_r($result);

答案 4 :(得分:0)

不推荐使用php函数split,因此建议使用preg_split或explode。 在这种情况下非常有用的是函数列表():

list($location, $Dad_Loc, $ammount) = explode(':', $string);

编辑: 我的代码有错误:

list(,$location,, $Dad_Loc,, $ammount) = explode(':', $string);

答案 5 :(得分:0)

似乎没有人能够正确地做到这一点

$string = "location:32:DaD+LoC:102AD:Ammount:294";
list(,$location,, $dadloc,,$amount) = explode(':', $string);