我遇到了array_filter的一些奇怪的錯誤。PHP array_filter輸出有時索引號
我的JSON數據是這樣的:
{
"data": [
{
"item": "book",
"date": "9.10."
},
{
"item": "apple",
"date": "10.10."
},
{
"item": "pen",
"date": "11.10."
}
]
}
我可以刪除某些對象與此代碼:
$days_arr = array('9.10.','10.10.');
$result['data'] = array_filter($my_var['data'], function($v) use ($days_arr)
{
return in_array($v['date'], $days_arr);
});
return json_encode($result);
從而消除包含日期= 9.10的對象。和10.10。 但問題:當我使用$days_arr = array('9.10.','11.10.');
我的輸出是這樣的:
{
"data": {
"0": {
"item": "book",
"date": "9.10."
},
"1": {
"item": "pen",
"date": "11.10"
}
}
}
因此,大家可以看到,一些非常奇怪的錯誤發生,JSON是完全錯誤的格式化。 9.10。和10.10。作品,10.10。和11.10。破壞輸出。
誰能幫忙?
我懷疑它實際上與你給出的例子發生:https://eval.in/877329,如果你結束了指數0,2剩餘的(注意差距雖這麼說),那麼等價的JSON結構將是一個對象而不是一個數組 – apokryfos