php - 如何获得一个空的关联数组?

标签 php mysql sql arrays

我希望我的标题有意义。现在我的 PHP 输出到我的 HTML 文档工作正常。除非我的 SQL 数据库为空,否则我到处都会出错。这是我的代码:

<?php

// configuration
require("../includes/config.php"); 

$rows = CS50::query("SELECT symbol, shares FROM portfolios WHERE user_id = ?", $_SESSION["id"]);
$cash = CS50::query("SELECT cash FROM users WHERE id = ?", $_SESSION["id"]);

$positions = [];
foreach ($rows as $row)
{
    $stock = lookup($row["symbol"]);
    $total = ($stock["price"] * $row["shares"]);

    if ($stock !== false)
    {
        $positions[] = [
            "name" => $stock["name"],
            "price" => $stock["price"],
            "shares" => $row["shares"],
            "symbol" => $row["symbol"],
            "total" => $total,
            "cash" => $cash[0]["cash"]
        ];
    }
}

// render portfolio
render("portfolio.php", ["positions" => $positions, "title" => "Portfolio"]);
?>

因此,如果 $rows 在这种情况下为空,则 positions 数组将抛出错误。所以如果 $rows 为空,我希望它为空。我希望我说清楚了。

最佳答案

数组不会抛出错误,我假设您的意思是您在尝试使用空数组时遇到了错误。在那种情况下,如评论中所述,只需使用 count() 检查它是否为空即可。 .

    // render portfolio
    if (count($positions) === 0) {
        $positions[] = [
            "name" => "",
            "price" => 0,
            "shares" => 0,
            "symbol" => "",
            "total" => 0,
            "cash" => 0
        ];
    }
    render("portfolio.php", ["positions" => $positions, "title" => "Portfolio"]);

关于php - 如何获得一个空的关联数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34860330/

相关文章:

mysql - 如何显示所有用户定义的变量(MySQL)

php - mysql搜索查询哪一个更好

mysql - 左连接条件

javascript - 如何使用 javascript 和 bootstrap 表对多个表列进行搜索?

php - 如何在 Bluehost 上使用 phpMailer isSMTP?

javascript - PHP、AJAX 和 Mysql

mysql - SQL 连接行查询

sql INSERT 条件作为选择语句?

php - PHP/MySQL 查询速度慢。重新考虑请求的帮助。 (160k 和 300 行表长度)

php - 抑制特定文件夹或文件的错误消息/检查