Php Laravel将字符串匹配到数组
我正在尝试将用户输入的值(Php Laravel将字符串匹配到数组,php,arrays,laravel,Php,Arrays,Laravel,我正在尝试将用户输入的值($index)与现有数组($index)进行匹配。用户可以选择多个选项。当我试图找出是否有用户输入的键与$appeard数组匹配时,我只选择了第一项 dd($indexArray)的值为: array:2 [ 0 => "1" 1 => "2" ] 我的代码如下: case 7: $index = ($parts[6]) ;
$index
)与现有数组($index
)进行匹配。用户可以选择多个选项。当我试图找出是否有用户输入的键与$appeard
数组匹配时,我只选择了第一项
dd($indexArray)
的值为:
array:2 [
0 => "1"
1 => "2"
]
我的代码如下:
case 7:
$index = ($parts[6]) ;
$ppeWorn = [
'None',
'Gloves',
'Fabric mask',
'Surgical/Medical mask',
'N95 mask (or equivalent)',
'Face shield or goggles/protective glasses',
'Disposable gown',
'Waterproof apron',
];
$indexArray = explode(',', $index ) ;
dd($indexArray);
foreach($indexArray as $value) {
if ($ppeWorn[$value]) {
$session["ppes"] = $ppeWorn[$value];
$this->setSession($session);
dd($session);
$response = $this->sessionOpeningTag . "Have you received IPC training?\n1. Yes\n2. No";
} else {
$response = $this->sessionClosingTag . "You have entered an invalid answer";
$this->deleteSession($session);
}
}
break;
因此,
$input
是一个数组,但它的第一个元素是“1,2”
。
因此,根据我对您的问题和代码的理解(请更新代码,仅提供有用的资料),您希望迭代$index
,并将值与开关大小写匹配
为此,您可以尝试:
$indexArray=explode(',',$index[0];//因为$index[0]有一个字符串
//一些逗号分隔的值
foreach($indexArray作为$value){
... ... ...
//在这里做你的事情
}
您可以检查从用户输入($index)
到现有数组($ppeWorn)
中存在的值。使用这种方法
$checkValue = array_key_exists($users_input,$ppeWorn);
echo $checkValue;
如果键存在于$pPEWARN
中,则返回true
你需要得到一些关于这段代码不好的建议-你的数据结构特别不合适。