php json_encode奇怪问题说明

yipeiwu_com7年前PHP代码库
json_encode 只支持utf-8格式这个就不多说了
复制代码 代码如下:

$array = array (
[0] => array ( [sale_unit_detail_id] => 13 [price] => 740000 [geometric_lat] => 51.50348620 [geometric_lng] =>-0.01710900 )
[1] => Array ( [sale_unit_detail_id] => 27 [price] => 740000 [geometric_lat] => 51.50348620 [geometric_lng] => -0.01710900 )
);

上面的php数组json_encode 之后通常会转化php数组会转化为形如[[...][...]] 的格式,但是今天碰到一个怪问题,当我的数组长度达到142的时候 给我转化为了形如
  {'0' :{..},'1':{...}......}的格式很奇怪,json_encode 一个神奇的函数
php中json_encode转数组为json字符串时的超奇怪问题。

对比以下两段代码:
复制代码 代码如下:

$menu[0][0] = "title1";
$menu[0][1] = "bar1";
$menu[0][2] = "bar2";
$menu[1][0] = 'title2';
$menu[2][0] = 'title3';
echo '&$menu='.json_encode($menu).'&';

这个会输出:&$menu=[["title1","bar1","bar2"],["title2"],["title3"]]&
复制代码 代码如下:

$menu[0]["title"] = "title1";
$menu[0]["bar1"] = "bar1";
$menu[0]["bar2"] = "bar2";
$menu[1][0] = 'title2';
$menu[2][0] = 'title3';
echo '&$menu='.json_encode($menu).'&';

而这个居然输出:&$menu=[{"title":"title1","bar1":"bar1","bar2":"bar2"},["title2"],["title3"]]&

什么意思?问题就在于{}和[],{}是对象,[]是数组!!!!在非php的情况下遍历的时候方法就不一样了!json_encode这个东西太神奇了,神奇起来让人有点郁闷!

相关文章

PHP中判断变量为空的几种方法分享

1. isset功能:判断变量是否被初始化  说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过  注意:当使用isset来判断数组元素是否被初始...

PHP fgetcsv 定义和用法(附windows与linux下兼容问题)

PHP fgetcsv 定义和用法   PHP fgetcsv() 函数从文件指针中读入一行并解析 CSV 字段。   与PHP fgets() 类似,不同的是 PHP fgetcsv(...

PHP微信发送推送消息乱码的解决方法

PHP微信发送推送消息乱码的解决方法

先用urlencode是因为中文在数组转json时会被编码为unicode,微信接口无法识别,所以得在json_encode前先来个编码,等转换后再用urldecode转回来,这样传输...

PHP 无限分类三种方式 非函数的递归调用!

PHP 无限分类三种方式 非函数的递归调用!

php无限分类大致有三种方式,   1、数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类;   2、数据库设计通过特定格式进行排列,然后使用mysql查询关键函数...

如何获知PHP程序占用多少内存(memory_get_usage)

下面是使用示例: 复制代码 代码如下: <?php echo memory_get_usage(), '<br />'; // 313864 $tmp = str_re...