我正在开发一个Telegram机器人,用户可以在其中保存调查表,该机器人的脚本会将用户信息保存为JSON
,如下所示:
{
"userID":{
"questionnaireTitle":{
"Question One":{
"Answer1":0,
"Answer2":0,
"Answer3":0
},
"Question Two":{
"Answer1":0,
"Answer2":0
}
}
}
}
好吧,在保存调查表之后,bot会创建答案按钮,然后用户可以共享它,当有人单击答案按钮时,查询将返回。在此查询中,我只能获取按钮值,我的问题是如何从这些数组中搜索单击的按钮值(用户选择的答案!)?
我通过使用foreach loop
来做到这一点:
$json = '{"userID":{"questionnaireTitle":{"Question One":{"Answer1":0,"Answer2":0,"Answer3":0},"Question Two":{"Answer1":0,"Answer2":0}}}}';
$data = json_decode($json, true);
foreach($data['userID'] as $questionnares => $questions){
foreach($questions as $question => $answers){
foreach($answers as $answer => $number){
if($queryValue == $answer){ //e.g. $queryValue is the name of selected inline button of bot.
//code to be executed, increasing $number of $answer for example!
}
}
}
}
所以花太多时间来完成我所期望的!
在撰写此问题时,我考虑过将questionnaireTitle
,question
和我可能需要做的所有事情(而不是执行此循环)放在bot内联按钮值中,但是我会谢谢,如果您让我知道如何从类似$queryValue
的数组中搜索类似$data
的字符串值并获取其父值?