我的SQL
$query = "SELECT value FROM oc_setting WHERE setting_id =7258";
$result = $this->db->query($query);
return $result->rows;
当我var_dump
显示
array(1) {
[0]=>
array(1) {
["value"]=>
string(158) "a:1:{i:0;a:5:{s:8:"rss_link";s:11:"ddddddddddd";s:9:"layout_id";s:1:"2";s:8:"position";s:14:"content_bottom";s:6:"status";s:1:"1";s:10:"sort_order";s:1:"5";}}"
}
}
如何像这样反序列化数组?先铸成字符串?我试过unserializ(var),但它说错误因为它是一个数组。
答案 0 :(得分:1)
PHP函数unserialize
(http://php.net/manual/en/function.unserialize.php)将为您提供帮助。
unserialize($result[0]['value']);
将返回数组。
答案 1 :(得分:0)
您似乎正在使用某些PHP框架(非常类似于CodeIgniter,但不确定)。 应该有一个函数来从结果集中确切地检索一行(第一行)。
现在你正在询问一个不好的解决方法。通常,DB驱动程序具有良好的接口,可以从查询/视图中获取多少行/列。
如果我需要浏览结果数组,我通常会使用以下语句:
if ($result -> num_rows())
{
foreach ($result -> result_array() as $entry)
{
// do something
}
}