Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从非顺序数组编码到JSON编码数组_Php_Json - Fatal编程技术网

Php 如何从非顺序数组编码到JSON编码数组

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

在PHP5.2.6上使用CakePHP,我对返回如下数组的表执行列表查询:

排列

因为它不是一个序列数组,所以json_encode将它编码为一个对象,而不是一个json数组,我需要它来填充一个Select表

PHP5.2.6不支持任何附加参数,因此我无法强制它创建JSON编码的数组

我的问题是,有人知道我如何以干净的方式解决这个问题吗?

请参阅:

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);
打印[无、空、空、值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:*名称/值对的集合。在各种语言中,这被实现为对象、记录、结构、字典、哈希表、键控列表或关联数组。*值的有序列表。在大多数语言中,这是以数组、向量、列表或序列的形式实现的。