将多维数组存储在userdata会话codeigniter中

时间:2016-10-04 08:54:38

标签: arrays codeigniter session

我想在codeigniter userdata会话中存储多维数组。 当我存储一个简单的数组,它工作正常。但在多维度上它什么都不存储。有没有办法在会话中存储多维数组。

我的代码是:

                foreach ($unique_data as $unique_type) {
                $indexes = index_unique_values($product_all_data, 'type', $unique_type['type']);
                foreach ($indexes as $key) {
                    $product_name = $product_all_data[$key]['name'];
                    $product_type = $product_all_data[$key]['type'];
                    $product_status = $product_all_data[$key]['status'];
                    $cost = $product_all_data[$key]['cost'];
                    $price = $product_all_data[$key]['price'];
                    $barcode = $product_all_data[$key]['barcode'];

                    $product_type_all_prod[] = array('name' => $product_name, 'type' => $product_type, 'status' => $product_status, 'cost' => $cost, 'price' => $price, 'barcode' => $barcode, 'cat_name' => '');
                }
            }

            $product_bytype_array = array("product_by_type" => $product_type_all_prod);
            $this->session->set_userdata($product_bytype_array);

谢谢。

1 个答案:

答案 0 :(得分:0)

如果你尝试像......那样怎么办?

$this->session->set_userdata(['product_data' =>$product_bytype_array]);

您可以检查您实际上是否以您期望的格式生成数组。

然后检查存储结果是否符合您期望的格式。

// What's in the resulting array that we want to store in the session?
var_dump($product_type_all_prod);  

$product_bytype_array = array("product_by_type" => $product_type_all_prod);
$this->session->set_userdata($product_bytype_array);

//What's in the array in the session
var_dump($this->session->userdata('product_by_type'));

这应该有所帮助。

注意:我已使用CI 3.1.0对此进行了测试,并将会话配置为文件类型,然后再配置为数据库。