Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel将字符串匹配到数组_Php_Arrays_Laravel - Fatal编程技术网

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


你需要得到一些关于这段代码不好的建议-你的数据结构特别不合适。