Я пытаюсь подсчитать длину массива, который я преобразовал из JSON, используя json_decode
в php, но он почему-то не работает. Это мой текущий код. Список JSON содержит массив, содержащий 10 000 элементов. Я почти уверен, что чего-то не хватает. Любая помощь будет оценена.
PHP
<?php
$fl = file_get_contents($somepath);
$text = json_decode($fl, true);
$len = count($text["alphalist"]);
echo $len;
?>
JSON
{
"alphalist": [{
"a": "alphabet1."
}, {
"b": "alphabet2."
}, {
"c": "alphabet3."
}, {
"d": "alphabet4."
}, {
"e": "alphabet5."
}
....
{
"zzzzz": "alphabet10000."
}
]
}
Ответ был на самом деле здесь в ответ на другой аналогичный вопрос.
PHP не конвертирует JSON с помощью 'json_decode()'
Поэтому после некоторого тестирования с пользователем D4V1D выясняется, что проблема связана с тем, что функция PHP json_decode
не работает, потому что она не была в формате UTF-8. Обходной путь для этого
$fl = file_get_contents($somepath);
$text = json_decode(utf8_encode($fl), true);
$len = count($text["alphalist"]);
Теперь $len
даст правильную длину массива. Если в моем объяснении есть какая-либо ошибка или улучшение, просто поместите его в комментарии, и я исправлю его соответствующим образом.
echo $len;
возвращается так далеко?0
когда я проверял это