如何从另一个数组中的一个数组中搜索值?

时间:2019-12-15 19:59:51

标签: php arrays loops telegram telegram-bot

我正在开发一个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!
            }
        }
    }
}

所以花太多时间来完成我所期望的!


在撰写此问题时,我考虑过将questionnaireTitlequestion和我可能需要做的所有事情(而不是执行此循环)放在bot内联按钮值中,但是我会谢谢,如果您让我知道如何从类似$queryValue的数组中搜索类似$data的字符串值并获取其父值?

0 个答案:

没有答案