PHP - json_encode - PullRequest
       1

PHP - json_encode

0 голосов
/ 05 мая 2020

Я генерирую json файлов вручную следующим образом:

$output_json = '{
"tabela1": {
    "ilosc_wpisow": ';
    $output_json = $output_json.'"'."$ile_wierszy_1".'",'.'
    "tabela": [';


    for ($i = 1; $i <= $ile_wierszy_1; $i++) {
    $g = $i-1;
    $szukana_wartosc_array2[$g] = str_replace(" ",'\n',$szukana_wartosc_array[$g]); 
    $output_json = $output_json.'
    {
    "bajty_przed": '.'"'.$bajty_przed_array[$g].'",
    ';
    $output_json = $output_json.'"szukana_wartosc": '.'"'.$szukana_wartosc_array2[$g].'",
    ';
    $output_json = $output_json.'"bajty_po": '.'"'.$bajty_po_array[$g].'",
    ';
    $output_json = $output_json.'"nowa_wartosc": '.'"'.$nowa_wartosc_array[$g].'"
    }';
    if ($i!=$ile_wierszy_1) { $output_json = $output_json.','; }
    }
    $output_json = $output_json.'
    ]
},';


        $output_json = $output_json.'
"tabela2": {
    "ilosc_wpisow": ';
    $output_json = $output_json.'"'."$ile_wierszy_2".'",'.'
    "tabela": [';

    for ($i = 1; $i <= $ile_wierszy_2; $i++) {
    $g = $i-1;

        $output_json = $output_json.'
    {
    "szukana_wartosc2": '.'"'.$szukana_wartosc2_array[$g].'",
    ';
    $output_json = $output_json.'"zamien_na": '.'"'.$zamien_na_array[$g].'",
    ';
    $output_json = $output_json.'"przesuniecie": '.'"'.$przesuniecie_array[$g].'"
    }';
    if ($i!=$ile_wierszy_2) { $output_json = $output_json.','; }
    }
    $output_json = $output_json.'
    ]
}
}';

Кто-нибудь поможет мне создать функцию json_encode? Я пробовал по-разному добавлять переменные в массив, но каждый раз на выходе у меня что-то другое.

Вывод: https://pastebin.com/f8keXaY7

1 Ответ

1 голос
/ 05 мая 2020

Первый шаг: Создайте свою структуру json в массиве php и сохраните его в переменной.

Что-то вроде того.

$json_source = [
    'tabela1' => [
        "ilosc_wpisow" => $ile_wierszy_1,
        "tabela"       => array_map(function($key) use ($szukana_wartosc_array, $bajty_przed_array, $bajty_po_array, $nowa_wartosc_array) {
            return [
                "bajty_przed"     => $bajty_przed_array[$key],
                "szukana_wartosc" => str_replace(" ", '\n', $szukana_wartosc_array[$key]),
                "bajty_po"        => $bajty_po_array[$key],
                "nowa_wartosc"    => $nowa_wartosc_array[$key],
            ];
        }, array_keys($szukana_wartosc_array)),

    ],
    'tabela2' => [
        'ilosc_wpisow' => $ile_wierszy_2,
        'tabela'       => array_map(function($key) use ($szukana_wartosc2_array, $zamien_na_array, $przesuniecie_array) {
            return [
                'szukana_wartosc2' => $szukana_wartosc2_array[$key],
                "zamien_na"        => $zamien_na_array[$key],
                "przesuniecie"     => $przesuniecie_array[$key],
            ];
        }, array_keys($szukana_wartosc2_array)),
    ],
];

Второй шаг: используйте функцию json_encode.

echo json_encode($json_source);

И, если ваш вывод всегда отличается, это означает, что ваш ввод всегда отличается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...