PHP foreach / else问题

时间:2014-07-22 16:27:03

标签: php foreach

foreach($cases['rows'] as $i => $item) {
    foreach($array as $key => $val) {
        if($item['status'] == $key) {
            echo $val;
        }
    }
}

现在这段代码正常运行,但如果$item['status'] != $key它没有回应。我试图在else语句之后添加if语句,除了它打印数次。

如何实现此功能?如果$item['status']

,我希望它打印$item['status'] != $key

非常感谢帮助。

感谢。

3 个答案:

答案 0 :(得分:1)

试试这个:

$test = null;
foreach($cases['rows'] as $i => $item) {
    foreach($array as $key => $val) {
        if($item['status'] == $key) {
            echo $val;
        }
        else {
            $test = $val;
        }
    }
}
if($test != null) {
    echo $test//Or whatever you want to display
}

答案 1 :(得分:1)

我理解你有两个数组的问题:

  1. 包含不同缩写及其全部含义的数组。
  2. 另一个包含数组的多维数组,这些数组又包含状态缩写。
  3. 回应完整意义而不是缩写:

    $abbreviations = array('NT' => 'Not taken',
                           'N/A' => 'Not available');
    
    $data = array(array('status' => 'NT'),
                  array('status' => 'N/A'));
    
    foreach($data as $item) {
        if(array_key_exists($item['status'], $abbreviations)) {
            echo $abbreviations[$item['status']] . PHP_EOL;
        } else {
            echo $item['status'] . PHP_EOL;
        }
    }
    

    结果:

      

    未采取

         

    不可用

答案 2 :(得分:0)

如果没有关于两个阵列中数据类型的更多信息,我建议您尝试:

  • !($item['status'] == $key)否认正确的陈述
  • $item['status'] !== $key也尝试检查相同的类型(也可以使用相等的语句测试它,看看你是否得到了你期望的结果)