Задать вопрос
@ikfah012
Не самый умный парень в этом чате

Как передать в json данные из цикла?

Добрый день.
Есть клавиатура для телеграм-бота, которая выглядит, так:
$buttons = json_encode(['inline_keyboard' => [[
 ["text" => "Test1","callback_data" => "1"],
 ["text" => "Tes2t","callback_data" => "2"]
]],], true);

Пытаюсь добавить в неё данные из бд, но не выходит:
$keyboard = "['inline_keyboard' => [[";
foreach($ds->children() as $dt) {
  $keyboard .= "['text' => '{$dt->title}', 'callback_data' => '{$dt->id}'],";
}
$keyboard .= "]],]";
$buttons = json_encode($keyboard, true);

Что я делаю не так?
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Всё. Вместо структуры массивов вы зачем-то формируете JSON-строку, причём неправильную, а затем снова пытаетесь преобразовать её в JSON.
$kbd = [];
foreach($ds->children() as $dt) {
    $kbd[] = [
        'text' => $dt->title,
        'callback_data' => $dt->id
    ];
}
$keyboard = [
    'inline_keyboard' => [$kbd]
];
$buttons = json_encode($keyboard, true);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы