Php 如何从非顺序数组编码到JSON编码数组
在PHP5.2.6上使用CakePHP,我对返回如下数组的表执行列表查询: 排列 因为它不是一个序列数组,所以json_encode将它编码为一个对象,而不是一个json数组,我需要它来填充一个Select表 PHP5.2.6不支持任何附加参数,因此我无法强制它创建JSON编码的数组 我的问题是,有人知道我如何以干净的方式解决这个问题吗?请参阅: array_values返回输入数组中的所有值,并对数组进行数字索引。 e、 g 印刷品Php 如何从非顺序数组编码到JSON编码数组,php,json,Php,Json,在PHP5.2.6上使用CakePHP,我对返回如下数组的表执行列表查询: 排列 因为它不是一个序列数组,所以json_encode将它编码为一个对象,而不是一个json数组,我需要它来填充一个Select表 PHP5.2.6不支持任何附加参数,因此我无法强制它创建JSON编码的数组 我的问题是,有人知道我如何以干净的方式解决这个问题吗?请参阅: array_values返回输入数组中的所有值,并对数组进行数字索引。 e、 g 印刷品 Array ( [0] => None
Array
(
[0] => None
[1] => Value 1
[2] => Value 2
)
["None","Value 1","Value 2"]
编辑:Javascript数组不能有间隙。您必须用NULL等填充缺少的元素
$a = array(
0 => 'None',
3 => 'Value 1',
5 => 'Value 2'
);
$na = array_pad(array(), max(array_keys($a)), null);
$a += $na;
ksort($a);
echo json_encode($a);
打印[无、空、空、值1、空、值2]请参阅:
array_values返回输入数组中的所有值,并对数组进行数字索引。
e、 g
印刷品
Array
(
[0] => None
[1] => Value 1
[2] => Value 2
)
["None","Value 1","Value 2"]
编辑:Javascript数组不能有间隙。您必须用NULL等填充缺少的元素
$a = array(
0 => 'None',
3 => 'Value 1',
5 => 'Value 2'
);
$na = array_pad(array(), max(array_keys($a)), null);
$a += $na;
ksort($a);
echo json_encode($a);
打印[None,null,null,Value 1,null,Value 2]如果要保留索引,需要使用对象。如果不是,则通过array\u merge将其传递给数组以重新编制数组索引
如果要保留索引,则需要使用对象。如果不是,则通过array\u merge将其传递给数组以重新编制数组索引
非常感谢你的详尽回答,但是我必须保留索引,我忘了添加那部分。因此,如果用户选择某个内容,则会发布数值valueID,并显示Value1和Value2。我很抱歉没有说清楚!您也可以使用js对象来实现这一点。你需要一个数组还有其他原因吗?谢谢你,沃克,这救了我一天,我没有用空值填充它,而是玩排序,它成功了;非常感谢你的详尽回答,但是我必须保留索引,我忘了添加那部分。因此,如果用户选择某个内容,则会发布数值valueID,并显示Value1和Value2。我很抱歉没有说清楚!您也可以使用js对象来实现这一点。你需要一个数组还有其他原因吗?谢谢你,沃克,这救了我一天,我没有用空值填充它,而是玩排序,它成功了;感谢您的回答,但是我需要它是一个数组,并且需要保留索引…JSON中的对象是一个带有非顺序键的数组。来自json.org:*名称/值对的集合。在各种语言中,这被实现为对象、记录、结构、字典、哈希表、键控列表或关联数组。*值的有序列表。在大多数语言中,这是以数组、向量、列表或序列的形式实现的。感谢您的回答,但是我需要它是一个数组,并且需要保留索引…JSON中的对象是一个具有非顺序键的数组。来自json.org:*名称/值对的集合。在各种语言中,这被实现为对象、记录、结构、字典、哈希表、键控列表或关联数组。*值的有序列表。在大多数语言中,这是以数组、向量、列表或序列的形式实现的。