我希望json_encode返回像这样的内容
相反我收到这样的东西:
再说一遍,如果我注释掉
如果在
[{key: "value"},{key:"value"},...]
相反我收到这样的东西:
{"1": {key: "value"}, "2": {key: "value"}, ...}
结果一直很好,直到我执行了 array_filter
... 很奇怪...
function somefunction($id, $ignore = array()) {
$ignorefunc = function($obj) use ($ignore) {
return !in_array($obj['key'], $ignore);
};
global $db;
$q = "Some query";
$rows = $db->giveMeSomeRows();
$result = array();
if ($rows) {
// this mapping I've always done
$result = array_map(array('SomeClass', 'SomeMappingFunction'), $rows);
if (is_array($ignore) && count($ignore) > 0) {
/////// PROBLEM AFTER THIS LINE ////////
$result = array_filter($result, $ignorefunc);
}
}
return $result;
}
再说一遍,如果我注释掉
array_filter
,从somefunction
返回的内容使用json_encode
后就能得到我想要的结果,否则我会得到一个JSON对象。如果在
array_filter
之前和之后var_dump
$result
,它们都是PHP数组类型,键中没有字符串等。