来自SQL Query的foreach循环的数组结果

时间:2014-01-15 22:58:54

标签: php arrays loops foreach

查找下面的代码,从此查询中创建1和0的数组。目前,$ rows的结果是:

Array ( [discontinued] => 1, ) Array ( [discontinued] => 1 ) Array ( [discontinued] => 0 ) Array ( [discontinued] => 0 ) Array ( [discontinued] => 1 ).... 

我宁愿有类似的东西:

Array [1] => 1 [2] => 1 [3] => 0 [4] => 0 [5] => 1....

任何人都可以帮助我,我们将不胜感激。 请不要评论代码中的漏洞;我知道它已经存在了。我只是一个初学者......我只是希望它的核心内容能够发挥作用。

干杯! :)

function checkDiscontinued($dbh, $idDiscontinuedArray) {
try {
    foreach ($idDiscontinuedArray as $id) {

        $stmt = $dbh->query("SELECT discontinued FROM `$id` ORDER BY `date` DESC LIMIT 1");
        $rows = $stmt->fetch(PDO::FETCH_ASSOC);

        print_r($rows);

        }
        if ($rows['discontinued'] == TRUE) { 
            //echo $id . "Action if true";
        } else {
            changeDiscontinued($dbh, $id, $idDiscontinuedArray);
            //echo $id . "Items already discontinued!";
            }       
    }
    catch (PDOException $e) {
    echo $e->getMessage();
    }
}

1 个答案:

答案 0 :(得分:2)

如果您希望将$rows中的值($pdo->fetch()的结果)进行数字索引,则可以将参数中的提取样式设置为PDO::FETCH_NUM,而不是PDO::FETCH_ASSOC

$rows = $stmt->fetch(PDO::FETCH_NUM);

但是,如果您要查找所有记录的“完整数组”,则可以切换到fetchAll(),而不是像fetch()一样提取单个结果:

$rows = $stmt->fetchAll(PDO::FETCH_NUM);