【发布时间】:2012-09-02 07:12:55
【问题描述】:
型号:
从 mySQL 中获取值为:array['10','5','2'] 的数据并将其放入会话数据中
控制器:
将该会话数据放入一个数组中以传递给视图:
$fubar = array(
'ex1' => $this->session->userdata('ex1')
);
$this->load->view('view', $fubar);
查看:
echo $ex1;
视图会吐出数组:array['10','5','2']
如何解析该数组以获取单个值(10、5 或 2)?
例如,echo $ex1['1']; 会吐出前 1 个字符:ar 但我希望它返回值 5
我想我可能没有在 mySQL 中正确存储数组,但我不确定。
【问题讨论】:
-
请把
var_dump($fubar);放在$this->load->view('view', $fubar);之前它会显示什么? -
var_dump: array(4) { ["ex1"]=> string(21) "array['40','20','10']" ["ex2"]=> 字符串(21)“数组['80','40','20']”[“ex3”]=>布尔(假)[“日期”]=>字符串(10)“2012-09-08”}
-
所以,数组根本不是数组,它们只是字符串。如何解析这些字符串并将它们保存为数组?
-
有
eval(<php code here>)。但这并不安全。将数组保存为字符串很奇怪。最好使用 serialize($your_array) 和 unserialize($your_serialized_array) 函数或 json_encode() 和 json_decode() 函数。总结: 1. 保存在会话中:serialize($your_array); 2. 从会话中提取: unserialize($this->session->userdata('ex1')) -
为什么你的数组被返回为字符串?发布您的模型,或任何正在执行此任务的人。
标签: php mysql arrays codeigniter