首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >怎么用爆炸?

怎么用爆炸?
EN

Stack Overflow用户
提问于 2011-11-24 16:43:55
回答 3查看 136关注 0票数 0

所以我有这个php:

代码语言:javascript
复制
<?php
if (isset($_COOKIE["currentsearchctrl"])) {
    $cookz = $_COOKIE["currentsearchctrl"];
    $data = explode(';', $cookz, -1);
    $newdata = array();

    foreach($data as $value){
        $newdata[] = explode(':', $value, -1);
    }    
    print_r($newdata);

} else { }
?>

由php读取的cookie:

%20Rod%20Stewart%20%3A%2059088763306%3B%20Led%20Zeppelin%20Official%20%3A%20131572223581891%3B%20Lynyrd%20Skynyrd%20%3A%206983887641%3B%20Black%20Sabbath%20%3A%2056848544614%3B

但“print_r”正在输出:

代码语言:javascript
复制
Array ( [0] => Array ( [0] => Rod Stewart ) [1] => Array ( [0] => Led Zeppelin Official ) [2] => Array ( [0] => Lynyrd Skynyrd ) [3] => Array ( [0] => Black Sabbath ) )

“id”不见了。我需要的是。=>阵列( => Rod Stewart,1 => 1200420 )1 =>阵列( =>领导齐柏林飞艇,1 => 110024294 )

为了提供帮助,这是print_r($data)的输出:

代码语言:javascript
复制
Array ( [0] => Rod Stewart : 59088763306 [1] => Led Zeppelin Official : 131572223581891 [2] => Lynyrd Skynyrd : 6983887641 [3] => Black Sabbath : 56848544614 )

有人能帮忙吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-24 16:52:59

为什么不尝试使用正则表达式呢?

代码语言:javascript
复制
<?php
if (isset($_COOKIE["currentsearchctrl"])) {
    $cookz = urldecode($_COOKIE["currentsearchctrl"]);
    preg_match_all("#(?P<artist>(?:\w|\s)+)\s:\s(?P<id>\d+)#", $cookz, $matchs, PREG_SET_ORDER);    
    print_r($matchs);
} else { }
?>

编辑:对不起,我没有注意到名字没有完整

示例:

票数 0
EN

Stack Overflow用户

发布于 2011-11-24 17:01:00

我想这就是你想要做的

代码语言:javascript
复制
$data = array (0 => "Rod Stewart : 59088763306", 1 => "Led Zeppelin Official : 131572223581891", 2 => "Lynyrd Skynyrd : 6983887641", 3 => "Black Sabbath : 56848544614" );


$data = array_map(function($item){
    list($artist, $id) = explode(' : ', $item);
    return array('id'=>$id, 'artist'=>$artist);
}, $data);

print_r($data);

输出

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [id] => 59088763306
            [artist] => Rod Stewart
        )

    [1] => Array
        (
            [id] => 131572223581891
            [artist] => Led Zeppelin Official
        )

    [2] => Array
        (
            [id] => 6983887641
            [artist] => Lynyrd Skynyrd
        )

    [3] => Array
        (
            [id] => 56848544614
            [artist] => Black Sabbath
        )

)
票数 1
EN

Stack Overflow用户

发布于 2011-11-24 16:46:59

使用序列化()和取消序列化()

代码语言:javascript
复制
$data = serialize($cookz);

序列化字符串可以确保将精确的结构存储到字符串中,以便稍后恢复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8260242

复制
相关文章

相似问题

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