我需要在平面文件中存储多维关联数据数组以用于缓存目的.我偶尔会遇到将其转换为JSON以便在我的Web应用程序中使用的需要,但绝大多数时候我将直接在PHP中使用该数组.
将数组作为JSON或PHP序列化数组存储在此文本文件中会更有效吗?我环顾四周,似乎在最新版本的PHP(5.3)中,json_decode实际上比它更快unserialize.
我目前倾向于将数组存储为JSON,因为我觉得如果有必要,人们可以更容易地阅读它,它可以在PHP和JavaScript中轻松使用,而且从我读过的,它甚至可能是更快解码(不确定编码).
有谁知道任何陷阱?任何人都有良好的基准来展示这两种方法的性能优势?
我的问题非常基本.
我没有找到任何例子来满足我的需求,究竟serialize()和unserialize()在PHP是什么意思?他们只举一个例子 - 序列化一个数组并以一种原因不明的格式显示输出.通过他们的术语很难理解基本概念.
编辑:
<?php
$a= array( '1' => 'elem 1', '2'=> 'elem 2', '3'=>' elem 3');
print_r($a);
echo ("<br></br>");
$b=serialize($a);
print_r($b);
?>
Run Code Online (Sandbox Code Playgroud)
输出:
Array ( [1] => elem 1 [2] => elem 2 [3] => elem 3 )
a:3:{i:1;s:6:"elem 1";i:2;s:6:"elem 2";i:3;s:7:" elem 3";}
Run Code Online (Sandbox Code Playgroud)
我无法理解第二个输出.除此之外,任何人都可以举例说明我需要在使用之前序列化一个php数组吗?
所以我需要在PHP中对数组进行编码并将其以纯文本形式存储在MySQL数据库中,我的问题是我应该使用serialize()还是json_encode()?每个人的优点和缺点是什么?
我认为他们中的任何一个都会在这种情况下做.但是你更喜欢哪一个?为什么?如果它不是数组的东西?