This has got me completely stumped:
print_r($json);
echo json_encode($json);
output:
Array
(
[query] => dia
[suggestions] => Array
(
[0] => Diana Johnson
[1] => Diane Abbott
)
)
{"query":"dia","suggestions":[null,null]}
What on earth is going wrong?
edit Just to add to the general wtf-ery of this, here’s another sample:
Array
(
[query] => david
[suggestions] => Array
(
[0] => David Cameron
[1] => David Amess
[2] => David Anderson
[3] => David Blunkett
[4] => David Burrowes
)
)
{"query":"david","suggestions":["David Cameron",null,null,null,null]}
This looks like an autocomplete script. I assume your results are loaded from a database, are you sure they’re utf-8? If you cannot replicate this functionality by hardcoding the array, then it’s probably an encoding issue.
According to http://php.net/manual/en/function.json-encode.php, “This function only works with UTF-8 encoded data.”
You can also use http://php.net/manual/en/function.json-last-error.php to see the last error.