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?
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);