如何在wordpress上获取序列化数据

时间:2011-02-23 10:55:48

标签: php wordpress serialization

如何在wordpress数据库上获取序列化数据?

示例

option_name               option_value
-----------------------------------------------------------
widget_example-widget     a:3:{i:2;a:0:{}i:6;a:4:{s:5:"title";s:14:"Example Widget";s:4:"name";s:8:"John Doe";s:3:"age";s:2:"30";s:3:"sex";s:4:"male";}s:12:"_multiwidget";i:1;}

示例我想调用sex并使用

$sex = get_option('widget_example-widget');
echo $sex['sex'];

它返回空,当尝试var_dump结果时如下

array(3) {
  [2]=>
  array(0) {
  }
  [6]=>
  array(4) {
    ["title"]=>
    string(14) "Example Widget"
    ["name"]=>
    string(8) "John Doe"
    ["age"]=>
    string(2) "30"
    ["sex"]=>
    string(4) "male"
  }
  ["_multiwidget"]=>
  int(1)
}

实际上我可以通过添加$sex['6']['sex']来检索此数据,但[6]=>中的问题是动态的。当我们激活/停用小部件时,它可以是另一个值。

问题

如何获得此数据的正确数据?

2 个答案:

答案 0 :(得分:1)

我不确定你真正想要的是什么,但也许可以尝试一个函数来检查每个数组以查看是否有“性别”索引,如果是,则返回值。不是很有效,但无论如何都应该这样做......

答案 1 :(得分:-1)

$data = 'a:2:{i:0;s:12:"Sample array";i:1;a:2:{i:0;s:5:"Apple";i:1;s:6:"Orange";}}';

$unserialized = unserialize($data);

print_r($unserialized);

结果:

Array
(
    [0] => Sample array
    [1] => Array
        (
            [0] => Apple
            [1] => Orange
        )
)