首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从srting中提取值,由php中的酶切分离

从srting中提取值,由php中的酶切分离
EN

Stack Overflow用户
提问于 2016-06-20 06:33:11
回答 5查看 66关注 0票数 1

如何从由@分隔的字符串中提取值

这是我的绳子

代码语言:javascript
复制
 $var='foo=1478|boo=7854|bar=74125|aaa=74125|bbb=470|ccc=74125|ddd=1200|';

我需要储存

代码语言:javascript
复制
$foo=1478
$boo=7854
$ccc=74125
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-06-20 06:44:16

当然,每个人都会建议explode路线:

代码语言:javascript
复制
$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来解释它了。

代码语言:javascript
复制
parse_str(str_replace('|', '&', $var), $data);
extract($data);
echo $foo;

两者都会产生同样的结果。不过,我不使用变量,而是选择使用数组。

票数 1
EN

Stack Overflow用户

发布于 2016-06-20 06:38:45

|爆炸字符串,您将得到作为数组的不同值,该数组由|分隔。现在,在每个值之前添加$,并回显它们以查看您想要的内容。

代码语言:javascript
复制
$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/>";
}

你会得到:

代码语言:javascript
复制
$foo=1478
$boo=7854
$bar=74125
$aaa=74125
$bbb=470
$ccc=74125
$ddd=1200

或者,如果要将它们存储在$foo变量中,并且只显示值,则执行以下操作:

代码语言:javascript
复制
$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
票数 0
EN

Stack Overflow用户

发布于 2016-06-20 06:44:06

使用explode函数,它可以打断您的字符串。

代码语言:javascript
复制
$array = explode("|", $var);
print_r($array);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37915926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档