I generate json files manually this way:
JavaScript
x
$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.'
]
}
}';
Someone help me create the function json_encode? I tried in different ways to add variables to the array, but every time I have something different on the output.
Output: https://pastebin.com/f8keXaY7
Advertisement
Answer
First Step : Build your json structure in a php array and store it in a variable.
Something like that.
JavaScript
$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)),
],
];
Second Step : Use json_encode function.
JavaScript
echo json_encode($json_source);
And, If your output is always different, it means that your input is always different.