Php 我用了很难的方法-什么是正确的方法?为什么会有四次回声?

Php 我用了很难的方法-什么是正确的方法?为什么会有四次回声?,php,cookies,foreach,Php,Cookies,Foreach,长话短说,我正在做一项作业,我得到了一个cookie,里面装满了用户从选择框输入的数据。我试图从cookie中获取信息,比如说,如果他们在所有八个下拉框中选择了选项A,它将呼出一个句子。如果没有,它就什么也不做。以下是我目前的代码: foreach ($savedCardArray as $key => $val) { if ($val === 'over2000') { foreach ($savedCardArray as $key => $val) {

长话短说,我正在做一项作业,我得到了一个cookie,里面装满了用户从选择框输入的数据。我试图从cookie中获取信息,比如说,如果他们在所有八个下拉框中选择了选项A,它将呼出一个句子。如果没有,它就什么也不做。以下是我目前的代码:

foreach ($savedCardArray as $key => $val) {
if ($val === 'over2000') {
    foreach ($savedCardArray as $key => $val) {
        if ($val ==='always') {
            foreach ($savedCardArray as $key => $val) {
                if ($val ==='publicTransport') {
                    foreach ($savedCardArray as $key => $val) {
                        if ($val ==='public') {
                            foreach ($savedCardArray as $key => $val) {
                                if ($val ==='photoEditing') {
                                    foreach ($savedCardArray as $key => $val) {
                                        if ($val ==='notSureSize') {
                                            foreach ($savedCardArray as $key => $val) {
                                                if ($val ==='notSureType') {
                                                    foreach ($savedCardArray as $key => $val) {
                                                        if ($val ==='always') {
                                                            echo 'We recommend the Lenovo Thinkpad!<br>';
}}}}}}}}}}}}}}}}    

这是最安全的方法。因为在您的示例中,您没有与键进行匹配。所以$data['Brand']和$data['time']对于'always'都将返回true


考虑到$data包含cookie数据。

这是最安全的方法。因为在您的示例中,您没有与键进行匹配。所以$data['Brand']和$data['time']对于'always'都将返回true


考虑到$data包含您的cookie数据。

保持循环,以便您可以在需要更改任何值时在此基础上进行扩展

$checkArray = array('over2000', 'always', 'publicTransport', 'public', 'photoEditing', 'notSureType', 'always');
$checkFlag = 0;

foreach  ($savedCardArray as $key => $val) {
    if (!in_array($val, $checkArray)) { $checkFlag = 1; }
}

if ($checkFlag == 0) { echo 'We recommend the Lenovo Thinkpad!<br>'; }

任何要检查的附加值都应添加到checkArray中。

保持循环,以便在需要更改任何值时可以在此基础上进行扩展

$checkArray = array('over2000', 'always', 'publicTransport', 'public', 'photoEditing', 'notSureType', 'always');
$checkFlag = 0;

foreach  ($savedCardArray as $key => $val) {
    if (!in_array($val, $checkArray)) { $checkFlag = 1; }
}

if ($checkFlag == 0) { echo 'We recommend the Lenovo Thinkpad!<br>'; }

任何要检查的附加值都应添加到checkArray中。

如果这是您想要的,则快速且脏:

$checkArray = array('over2000', 'always', 'publicTransport', 'public', 'photoEditing', 'notSureType', 'always');
if($checkArray == array_values($savedCardArray)){
    echo 'We recommend the Lenovo Thinkpad!<br>'; 
}

如果这是您想要的,那么快速且肮脏:

$checkArray = array('over2000', 'always', 'publicTransport', 'public', 'photoEditing', 'notSureType', 'always');
if($checkArray == array_values($savedCardArray)){
    echo 'We recommend the Lenovo Thinkpad!<br>'; 
}

为什么要在同一个数组中循环?你想用这个做什么?让我们看看数组的内容会更容易回答。尝试这行代码并给出响应,去掉方括号。[echo;打印\r$savedCardArray;echo]。此外,由于每个循环使用相同的变量名[$key$value],因此它们将相互覆盖。当它离开循环时,要进入父循环,键值将跳过到内部循环完成的位置。为什么要在同一个数组中循环?你想用这个做什么?让我们看看数组的内容会更容易回答。尝试这行代码并给出响应,去掉方括号。[echo;打印\r$savedCardArray;echo]。此外,由于每个循环使用相同的变量名[$key$value],因此它们将相互覆盖。当它离开一个循环时,要进入父循环,键值将跳到内部循环完成的地方。这就成功了!我对PHP非常陌生,我知道我的问题是多么糟糕,所以我感谢你的帮助!谢谢成功了!我对PHP非常陌生,我知道我的问题是多么糟糕,所以我感谢你的帮助!谢谢
$checkArray = array('over2000', 'always', 'publicTransport', 'public', 'photoEditing', 'notSureType', 'always');
if($checkArray == array_values($savedCardArray)){
    echo 'We recommend the Lenovo Thinkpad!<br>'; 
}