【发布时间】:2015-04-16 00:00:28
【问题描述】:
由于我不是高级 PHP 程序员,我对 PHP 的初步了解表明,PHP 数组如下所示:
$indexed_array = array( 1, 'Toothless', 23, 2456 );
$associative_array = array( 1 => 'Toothless', 2 => 2456 );
$multidimensional_array = array( 'me' => 'Toothless', 'nature' => 'Fearless' );
现在我开始了解 PHP 速记 array() 属性:
$shorthand_array = [ 1, 'Toothless', 23, 2456 ];
$shorthand_mixture = [ 'me' => 'Toothless', 1, 'nature' => 'Fearless' ]; *
* source^
我其实是 WordPress 的粉丝,在 WordPress postmeta 表中,WP 会在这样的文本中存储一些 meta_values(类型:longtext)(没有空格,纯块)字符串):
a:3:{i:571;s:16:"path/to/image.ext";i:572;s:16:"path/to/image.ext";i:411;s:16:"path/to/image.ext";}
使用 jsfiddle 的 TidyUp 我明白了,它是一个数组:
a: 3: {
i: 571;
s: 16: "path/to/image.ext";
i: 572;
s: 16: "path/to/image.ext";
i: 411;
s: 16: "path/to/image.ext";
}
我现在可以破译了,a 代表array,值 3 表示它有 3 个索引; i 表示index,它存储了附件的ID,s 表示string(除了每个s 之外的字符数),它存储了附件的路径。 ...使用 CMB2 插件我发现了相同的存储结构。
现在我正在开发一个 Raw PHP 项目,其中的数据库结构和存储计划由我自己负责。所以我在重复字段中考虑这样的事情。我想将常见的重复字段存储在同一个 meta_key 下,并将使用这样的数组检索单个字段及其关联值。
顺便说一句,我不明白如何从 PHP 中以这种格式存储数据,这是什么类型的数组?而实际上我是如何从用户输入中生成这样一个复杂的字符串(实际上是一个数组)?
【问题讨论】:
-
这不是数组,它是数组的序列化版本。你可以通用化它并获得数组版本。
标签: php mysql arrays wordpress