php json对象取索引值,php字段转换为json对象并保留数值索引

本文要解决的问题是将没有索引php字段转换为json对象(而不是默认的json字段)

php中链表转json的方法是系统自带的方法:json_encode

php中链表转换为json的规则是:当不指定索引时,会转换为json字段,如果指定索引,则会转换为json对象。

那么问题来了,如果需要将没有索引的字段转换成json对象该怎么办,先看这两种情况:

1、不指定索引时:

$val = array("a","b","c","d","e");

转换为json:

[“a”、“b”、“c”、“d”、“e”]

2、有索引时:

$val = array("a"=>"a","b"=>"b","c"=>"c","d"=>"d","e"=>"e") ;

转换为json:

“一个”:“一个”,

“b”:“b”,

“c”:“c”,

“d”:“d”,

“e”:“e”

然后我们回到第一种情况,如果我们想转换为以下没有索引的json对象:

“0”:“一个”php数组转json对象

“1”:“b”,

“2”:“c”,

“3”:“d”,

“4”:“e”

有人说我们用另一个链表自动指定索引并转换来解决问题:

$arr = 数组();

$val = array("a","b","c","d","e");

为($i=0;$i

$arr[''.$i]=$val[$i];

回显 json_encode($arr);

但实际情况是这样并没有解决问题,输出结果仍然是json字段。

原因是:php中字段的默认索引是数字0~n(取决于字段的宽度)。 不指定索引时,默认为数列索引,自动指定数列索引的效果与不指定索引的效果相同。 因此,即使这样指定索引,也不太好用。

解决办法也很简单,把php默认的索引规则搞乱即可!

我们只需要在 $arr 字段初始化时指定一个索引即可。 这时候PHP就会认为链表的索引已经被用户修改了,不再受系统管理。

上述代码修改为:

$arr = 数组(1=>0);

$val = array("a","b","c","d","e");

为($i=0;$i

$arr[''.$i]=$val[$i];

回显 json_encode($arr);

请注意红色标记的代码。 通过这样的初始化,后续循环中的代码就可以按照我们想象的结果执行了。

php数组的使用远不止这个方法和点,还需要你努力去发现。

ps:仔细研究了php和jsphp数组转json对象,我慢慢意识到,弱类型语言是高级语言,而强类型语言是白痴语言。