Массив превращается в json с помощью php

нужна твоя помощь в этом ... Я пытаюсь создать код, который получит файл .txt и преобразует весь текстовый контент в json.

вот мой пример кода:

<?php

// make your required checks

$fp    = 'SampleMessage01.txt';

// get the contents of file in array
$conents_arr   = file($fp, FILE_IGNORE_NEW_LINES);

foreach($conents_arr as $key=>$value)
{
    $conents_arr[$key]  = rtrim($value, "\r");
}

$json_contents = json_encode($conents_arr, JSON_UNESCAPED_SLASHES);

echo $json_contents;
?>

Я уже получил результат, когда пытался повторить $json_contents

["Sample Material 1","tRAINING|ENDING","01/25/2018 9:37:00 AM","639176882315,639176882859","Y,Y","~"]

но когда я попытался повторить эхо, используя этот метод, $json_contents[0] Я получил результат только для каждого символа.

Код

Массив превращается в json с помощью php

Результат

Массив превращается в json с помощью php

надеюсь, ты сможешь мне помочь с этим .. Спасибо

Почему вы повторяете [0]? Чего вы пытаетесь достичь?

Lawrence Cherone 02.04.2018 06:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
67
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Это происходит потому, что $json_contents - это строка. Это может быть строка json, но это строка, поэтому здесь будут применяться строковые свойства, и, следовательно, когда вы echo $json_contents[0], он дает вам первый символ строки. Вы можете либо декодировать закодированную строку json в объект, как показано ниже:

$json = json_decode($json_contents);
echo $json[0];

или повторить его перед json_encode:

echo $conents_arr[0];
$json_contents = json_encode($conents_arr, JSON_UNESCAPED_SLASHES);

Как говорит PHP.net «Возвращает нить, содержащий представление JSON предоставленного значения».

Поскольку вы используете $ json_contents [0], это вернет первый символ строки json.

Ты можешь сделать это

$conents_arr[0]

Или преобразуйте строку json в массив PHP, используя

$json_array = json_decode($json_contents, true);
echo $json_array[0];
Ответ принят как подходящий

Функция json_encode () принимает массив в качестве входных данных и преобразует его в строку json.

echo $json_contents; просто распечатайте строку.

если вы хотите получить к нему доступ, вам нужно расшифровать строку JSON для массива.

//this convert array to json string
$json_contents = json_encode($conents_arr, JSON_UNESCAPED_SLASHES);

//this convert json string to an array.
$json_contents = json_decode($json_contents, true);

//now you can access it 
echo $json_contents[0];

Другие вопросы по теме