为了账号安全,请及时绑定邮箱和手机立即绑定

摆脱 ?: PHP 中的运算符

摆脱 ?: PHP 中的运算符

PHP
一只斗牛犬 2022-05-27 10:19:02
我对用于调查的 PHP 代码有疑问。该代码仅采用一个值“answer”,如果没有答案,则采用“otherAnswer”。我需要它同时接受“答案”和“其他答案”这是代码。感谢帮助。protected function convertRequestToUserAnswersArray(){    $answers = [];    if ($this->request->hasArgument('answers')) {        /** @noinspection PhpUnhandledExceptionInspection */        $requestAnswers = $this->request->getArgument('answers');        /** @noinspection PhpWrongForeachArgumentTypeInspection */        foreach ($requestAnswers as $questionUid => $requestAnswer) {            $answers[$questionUid] = $requestAnswer['answer'] ?: $requestAnswer['otherAnswer'];        }    }    return $answers;}
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

假设这$answers[$questionUid]是一个数组,您可以尝试将值推送到它:


/** @noinspection PhpWrongForeachArgumentTypeInspection */

foreach ($requestAnswers as $questionUid => $requestAnswer) {

    $answers[$questionUid] = $requestAnswer['answer'] . '----' . $requestAnswer['otherAnswer'];

}

希望这可以帮助。


查看完整回答
反对 回复 2022-05-27
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

正如你所说,你想要两个值然后你可以存储到数组中,如下所示


$answers[$questionUid][] = $requestAnswer['answer'];

$answers[$questionUid][] = $requestAnswer['otherAnswer'];

通过使用上面的脚本$answers将有两个值反对$questionUid


查看完整回答
反对 回复 2022-05-27
?
largeQ

TA贡献2039条经验 获得超7个赞

我们不知道$answers将如何使用。因为返回 answer 和 otherAnswer 都需要$answers是数组。这意味着$answers必须重构任何用户。

像这样的东西可能会起作用:

$answers[$questionId] = ["answer" => $requestAnswer["answer"], "otherAnswers" => requestAnswer["otherAnswer"] ]

只需为密钥存在添加一些检查机制。

或者您可以按照另一个 SO 答案中的建议将其连接起来。


查看完整回答
反对 回复 2022-05-27
  • 3 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信