Попытка посчитать длину массива из списка JSON

1

Я пытаюсь подсчитать длину массива, который я преобразовал из 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."
    }
]
}
  • 0
    Что делает echo $len; возвращается так далеко?
  • 0
    он возвращает 0 когда я проверял это
Показать ещё 8 комментариев
Теги:
arrays

1 ответ

1

Ответ был на самом деле здесь в ответ на другой аналогичный вопрос.

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 даст правильную длину массива. Если в моем объяснении есть какая-либо ошибка или улучшение, просто поместите его в комментарии, и я исправлю его соответствующим образом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню