PHP如何处理没有foreach循环?

时间:2016-09-13 00:38:28

标签: php foreach

我有一个完美无缺的foreach循环。

foreach ($row AS $row) {
   echo $row['id'];
}

有时候没有返回任何行。我想要回应'没有行';什么时候没有行。问题是如果我尝试做如下的事情:

foreach ($row AS $row) {
    if (!isset($row['id'])) {
        echo 'there are no rows';
    } else {
        echo $row['id'];
    }
}

它永远不会返回“没有行”的回声。我假设这是因为当没有行时,foreach循环不会运行。问题变成了,当有行时,如果没有行而没有干扰foreach,我怎么回应“没有行”。

我也尝试过以下代码:

$row1 = $stmt->fetch();
$row = $stmt->fetchAll();
    if (isset($row1['id'])) {
        foreach ($row AS $row) {

仍然没有运气

所以期望的结果如下:

When loop runs:
1
2
3
4

When loop doesn't run:
there are no rows

2 个答案:

答案 0 :(得分:5)

你应该在循环之前检查一下

if(count($row)>0){
//foreach ...
}else{
echo 'no data';
}

答案 1 :(得分:4)

测试数组是否为空:

if (empty($row)) {
    echo "there are no rows";
} else {
    foreach($row as $row) {
        ...
    }
}