我们正试图获取String的某些部分。
我们有字符串:
location:32:DaD+LoC:102AD:Ammount:294
我们希望将信息放在不同的字符串中。例如$location=32
和$Dad+Loc=102AD
每个字符串的值会有所不同,但它始终具有以下结构:
location:{number}:DaD+LoC:{code}:Ammount:{number}
那么......我们如何获得这些价值?
答案 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);