Php:array_filter更改数据格式

Php:array_filter更改数据格式,php,arrays,json,filter,Php,Arrays,Json,Filter,在下面的代码中,我希望 t2: [{"value":"".....}, {}, {}] 但是我得到了 t2: {"0":{"value":"",.. , "1":{}, .. } 均匀铸造 json_encode( (array) $t2); 无法使其工作 thx 函数过滤器($var){ 返回($var->id

在下面的代码中,我希望

t2: [{"value":"".....}, {}, {}]
但是我得到了

t2: {"0":{"value":"",.. , "1":{}, .. }
均匀铸造

json_encode( (array) $t2);
无法使其工作
thx

函数过滤器($var){
返回($var->id<4);
}
$t1=json_解码('[{“值”:“,”id:“0”,“键”:“algo”},{“值”:“0.8”,“id”:“-1”,“键”:“cout”},{“值”:“2012-07-21”,“id”:“3”,“键”:“日期”},{“值”:“id”:“0”,“键”:“欧洲”},{“值”;“id”:“0”,“键”:“inria"但是,我们必须相信,我们必须拥有最大的美德和智慧,我们必须拥有最大的美德和智慧,我们必须拥有绝对的美德,我们必须在友好的经验中,遵循共同的美德。我们必须拥有伟大的非洲人民!我们必须拥有伟大的自我;我们必须尊重我们的美德,我们必须拥有伟大的信念例如,非无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主、无主在整个天野之弥的土地上,有着显著的区域性语言。在巨大的保护期内,有着丰富的土地、文化和公民的崇拜,有着丰富的宗教信仰,有着丰富的宗教信仰,没有宗教信仰,没有宗教信仰,没有宗教信仰,没有宗教信仰,没有宗教信仰,没有宗教信仰,没有宗教信仰这是一个非常好的例子,它是一个非常好的例子。在一个充满时间的地方,一个充满怀疑的星云,一个充满活力的地方,一个充满活力的地方,一个充满活力的地方未经许可的宗教、宗教、宗教、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰、宗教信仰等我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们“:“type”}]');
$t2=阵列_过滤器($t1,“过滤器”);
echo“t2:”.json_encode($t2);

在PHP中,关联数组和数字数组之间没有区别。因此,在转换为JSON时,
JSON_encode
必须从数组的键推断它应该被编码为数组还是对象。它通过测试来确定(a)键是否是数字键,以及(b)键是否是顺序键,从
0开始;如果两个测试都通过,它将被编码为一个数组

使用
array\u filter
时,会删除一些键。其他键没有重新编号,因此键不再按顺序排列。这意味着
json\u encode
推断在用json编码时,这应该是一个对象而不是一个数组

可以通过对键重新编号来更正此问题。使用
array\u values
执行此操作:

echo 't2: '.json_encode(array_values($t2));
json_编码($t1)是否也存在同样的问题?那么json_编码(数组_值($t2))呢?没有t1:[{“值”:“id”:“0”,“键”:“algo”},{“值”:“0.8”,“id”:“-1”,“键”:“cout”},{“值”:“2012-07-21”,“id”:“3”,“键”:“日期”},{“值”:“id”:“0”,“键”:“欧洲”},{“值”:“id”:“0”,“键”:“inria“关……这就是为什么JSON_编码(数组_值($t2))看起来不错的原因
echo 't2: '.json_encode(array_values($t2));