php - 数组 : What is the "s:" value in syntax based on?

标签 php mysql arrays serialization

我需要导入一组复选框,但有一个值我不知道它是如何确定的。

该数组基于我创建的显示类别复选框选项列表的用户元选项。它抓取所有类别并创建一个可以保存到用户配置文件的复选框选项。这些类别具有不同的级别(父级、子级或子级)。

这是我用来创建用户元选项的编码的一部分:

$args = array( 'hide_empty' => 0, 'taxonomy'=> 'category');
$categories =  get_categories($args);

if ($categories){
                        foreach ( $categories as $category ){ 
                            if(in_array($category->term_id,(array)$data)) {
                                $selected = 'checked="checked""';
                            } else {
                                $selected = '';
                            }
                            echo '<input name="user_cats[]" value="'.$category->term_id.'" '.$selected.' type="checkbox"/> '.$category->name.'<br/>';
                        }
                    }

在对一些复选框选项进行测试保存后,我检查了“user_cats”字段的数据库值,它给了我这样的信息:

a:2:{i:0;s:2:"20";i: 1;s:3:"343";

现在,我知道除了一个变量之外的所有变量代表什么。

a = 值/选择的总量(数量)

i = 值/选择的序号(*从 0 开始)

"X" = 括号内的数值为数值

我的问题是,s: 值基于什么?我问的原因是因为我正在编译一个包含 1,300 条记录的 csv 文件来导入,我不知道 s: 值是如何确定的。我试过只给 s: 一个常量值 2,但是在导入这些值之后,没有根据导入的数组选择选项。那没有用。

所以我觉得选择正确的选项是基于s: 值。另一种选择是,如果我能够在没有当前语法的情况下导入数组。

我花了 很长 时间用 excel 函数和技巧手动编译文件,这是唯一的障碍。任何帮助都将是一个主要的救世主。

最佳答案

这是 php 序列化格式:

a:2 - array with 2 elements
s:2 - string 2 characters long
i:0 - integer with value "0"

关于php - 数组 : What is the "s:" value in syntax based on?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7895864/

相关文章:

arrays - 如何获取静态数组的长度?

php - 我应该从 mysql 升级到 PDO 的 mysqli 吗?

php - 从 JQuery 获取数据并将其存储在 PHP 变量中

php - 如何更新除最后一行之外的所有行?

mysql - MYSQL 可以支持 4 GB 左右的数据库吗?我会有任何性能问题吗?

mysql - mysql中autoincrement能产生的最大ID号是多少

c - 无法理解 C 基础知识

c - 数列长度、数组中元素的第一个和最后一个索引

php - 第一个 JQuery 项目...有点卡住

mysql - 无法在查询中按上午/下午对时间(varchar 类型)进行排序