Company logo
  • Empleos
  • Bootcamp
  • Acerca de nosotros
  • Para profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
    • Bootcamp
  • Para empresas
    • Inicio
    • Nuestro proceso
    • Planes
    • Pruebas
    • Nómina
    • Blog
    • Comercial
    • Calculadora

0

125
Vistas
Insert array into an json encoded array in PHP

I have function retIKey(..):

function retIKey($text, $callback) {
    return json_encode([
        'inline_keyboard'=>[
            [
                ['text'=>"$text", 'callback_data'=>"$callback"]
            ]
        ],
    ]);
}

I have some information that I should add to this array. I want to add ['text'=>"sql1", 'callback_data'=>"sql1"] into the array using for loop. For example, the result should be like this after the for loop:

function retIKey($text, $callback) {
    return json_encode([
        'inline_keyboard'=>[
            [
                ['text'=>"$text", 'callback_data'=>"$callback"], ['text'=>"sql1", 'callback_data'=>"sql2"]
            ],
[
                ['text'=>"sql2", 'callback_data'=>"sal2"]
            ]
        ],
    ]);
}

What should I do? How can I do this?

10 months ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Your function return the array json encoded. So to add values to the array outside of the function afterwards, you have to decode the array first. After adding the values, you can encode again if needed.

It works like this:

function retIKey($text, $callback)
{
    return json_encode([
        'inline_keyboard' => [
            [
                'text' => "$text",
                'callback_data' => "$callback"
            ]
        ]
    ]);
}

$jsonArray = retIKey('sql1', 'sql1');

$array = json_decode($jsonArray, true);
$array['inline_keyboard'][] = [
    'text' => 'sql2',
    'callback_data' => 'sql2'
];

$array now looks like:

array (size=1)
  'inline_keyboard' => 
    array (size=2)
      0 => 
        array (size=2)
          'text' => string 'sql1' (length=4)
          'callback_data' => string 'sql1' (length=4)
      1 => 
        array (size=2)
          'text' => string 'sql2' (length=4)
          'callback_data' => string 'sql2' (length=4)

If needed, you can encode the array again afterwards with:

$jsonArray = json_encode($array);
10 months ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos