在PHP中这是什么类型的数组?

时间:2015-02-15 10:23:20

标签: php mysql arrays wordpress

由于我不是高级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_value s(类型: 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下存储公共重复字段,并使用这样的数组检索单个字段及其关联值。

BTW,我无法理解如何从PHP以这种格式存储数据,这是什么类型的数组?实际上我如何从用户输入生成这样的复杂字符串(实际上是一个数组)?

1 个答案:

答案 0 :(得分:3)

请参阅PHP函数serialize()unserialize()

<强>的serialize()

http://php.net/manual/en/function.serialize.php

<强>反序列化()

http://php.net/manual/en/function.unserialize.php