从mysql数据库的单个“单元”中的大量数据中提取特定数据

时间:2013-05-21 13:42:21

标签: php mysql

长时间读者第一次提问...

我正在尝试使用Drupal来创建一组变量,而不是问题,所有这些都可以设置它们,并且对于将来的运算符来说很简单。

然后我需要在php中获取这些值,仍然在网站上但在某种程度上在Drupal之外。同样,虽然我在PHP上有点轻量级,但我可以得到我需要的东西。然而,drupal将数据存储在一个“单元格”中(道歉,我搜索了我正在追求的内容,但我认为我的词汇量缺乏得到正确的结果!)。以下是存储方式的示例:

  

a:3:{i:0; a:3:{s:5:“value”; s:2:“38”; s:5:“label”; s:11:“每次费用   M2 “; S:6:” 重量 “; S:1:” 0 “;} I:1;一个:3:{S:5:” 值 “; S:1:” 7 “; S:5:”标签 “; S:13:” 拱   最佳   成本 “; S:6:” 重量 “; S:1:” 1 “;} I:2; A:3:{S:5:” 值 “; S:1:” 5 “; S:5:”标签 “; S:13:” 平   最高成本“; s:6:”重量“; s:1:”2“;}}

所以我可以愉快地返回上面的全部内容,但我没有丝毫如何将其细化为特定的参考。我可以计算出某些括号集之间的数据,所以,一个参考是:

{s:5:"value";s:2:"38";s:5:"label";s:11:"Cost Per M2";s:6:"weight";s:1:"0";}

我真正需要的是示例中的“38”,因为这是第二个系统使用多个来计算最终成本的成本。

我希望这有道理吗?

2 个答案:

答案 0 :(得分:1)

该值已序列化(请参阅http://php.net/manual/en/function.serialize.php)。你想要做的是反序列化它(见http://www.php.net/manual/en/function.unserialize.php)。所以它会是:

$deserializedValues = unserialize($values). 

之后,您可以通过执行以下操作来调用变量:

$deserializedValues['value'] (if an array)

$deserializedValues->value (if an object)

答案 1 :(得分:0)

Drupal返回JSON。处理这个问题最干净的方法是使用PHP的json_decode()函数: http://php.net/manual/en/function.json-decode.php