如何从由@分隔的字符串中提取值
这是我的绳子
$var='foo=1478|boo=7854|bar=74125|aaa=74125|bbb=470|ccc=74125|ddd=1200|';我需要储存
$foo=1478
$boo=7854
$ccc=74125发布于 2016-06-20 06:44:16
当然,每个人都会建议explode路线:
$var = 'foo=1478|boo=7854|bar=74125|aaa=74125|bbb=470|ccc=74125|ddd=1200|';
foreach(array_filter(explode('|', $var)) as $e){
list($key, $value) = explode('=', $e);
${$key} = $value;
}另外,另一个方法是将管道转换为符号,这样就可以用parse_str来解释它了。
parse_str(str_replace('|', '&', $var), $data);
extract($data);
echo $foo;两者都会产生同样的结果。不过,我不使用变量,而是选择使用数组。
发布于 2016-06-20 06:38:45
用|爆炸字符串,您将得到作为数组的不同值,该数组由|分隔。现在,在每个值之前添加$,并回显它们以查看您想要的内容。
$var = 'foo=1478|boo=7854|bar=74125|aaa=74125|bbb=470|ccc=74125|ddd=1200|';
$arr = explode("|", $var);
$arr = array_filter($arr);
foreach($arr as $val){
echo "$".$val."<br/>";
}你会得到:
$foo=1478
$boo=7854
$bar=74125
$aaa=74125
$bbb=470
$ccc=74125
$ddd=1200或者,如果要将它们存储在$foo变量中,并且只显示值,则执行以下操作:
$var = 'foo=1478|boo=7854|bar=74125|aaa=74125|bbb=470|ccc=74125|ddd=1200|';
$arr = explode("|", $var);
$arr = array_filter($arr);
foreach($arr as $val){
$sub = explode("=", $val);
$$sub[0] = $sub[1];
}
echo $foo; //1478发布于 2016-06-20 06:44:06
使用explode函数,它可以打断您的字符串。
$array = explode("|", $var);
print_r($array);https://stackoverflow.com/questions/37915926
复制相似问题