Tengo la función retIKey (..):
function retIKey($text, $callback) { return json_encode([ 'inline_keyboard'=>[ [ ['text'=>"$text", 'callback_data'=>"$callback"] ] ], ]); }
Tengo alguna información que debería agregar a esta matriz. Quiero agregar ['text'=>"sql1", 'callback_data'=>"sql1"]
en la matriz usando for loop. Por ejemplo, el resultado debería ser así después del bucle for:
function retIKey($text, $callback) { return json_encode([ 'inline_keyboard'=>[ [ ['text'=>"$text", 'callback_data'=>"$callback"], ['text'=>"sql1", 'callback_data'=>"sql2"] ], [ ['text'=>"sql2", 'callback_data'=>"sal2"] ] ], ]); }
¿Qué tengo que hacer? ¿Cómo puedo hacer esto?
Su función devuelve la matriz json codificada. Entonces, para agregar valores a la matriz fuera de la función después, primero debe decodificar la matriz. Después de agregar los valores, puede codificar nuevamente si es necesario.
Funciona así:
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
ahora se parece a:
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)
Si es necesario, puede codificar la matriz nuevamente después con:
$jsonArray = json_encode($array);