php - PHP 中的二维关联数组

标签 php

在我的代码中,我从一个 sql 数据库中获取数据(三列),我想将这些行存储在一个关联的 PHP 数组中。该数组必须是多维的,因为我想使用数据库中的行 ID 作为键,以便我可以像这样获取值:

$products["f84jjg"]["name"]

$products["245"]["code"]

我试过使用下面的代码,但它不起作用:

while ($row = mysql_fetch_row($sqlresult))
{
    $products = array($row[0] => array(
            name => $row[1], 
            code => $row[2]
        )
    );
}

此外,如果键是从变量中获取的,我应该如何引用它?我想做的是:

$productName = $products[$thisProd]["name"];

这行得通吗?

最佳答案

假设 row[0] 的内容是唯一标识符(否则您可以覆盖一行),这应该可以做到:

while($row = mysql_fetch_row($sqlresult)) {
    $products[$row[0]] = array(
        'name' => $row[1], 
        'code' => $row[2]
    );
}

您需要在数组键周围加上引号,并且您正在创建一个数组的数组。

另请注意,您可以使用 mysql_fetch_assoc而不是 mysql_fetch_row,它会给你数组键作为列名,这会让这更容易/更清晰:

while($row = mysql_fetch_assoc($sqlresult)) {
    $products[$row['myidcolumn']] = $row;
}

执行此操作后,您描述的代码将起作用。

关于php - PHP 中的二维关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/992162/

相关文章:

php - 如何在laravel http客户端api调用中分离基本URL和端点?

PHP5 - 显示错误

php - 插入数据mysql数据库时出错,

PHP for 循环运行超过它应该的

javascript - 使用 PHP 和 AJAX 的 Mysql UPDATE,无法更新数据库

php - PHP将所有行作为数组获取

php - Laravel 5 从 Laravel 安装外部加载 View

php - 打破foreach循环php

PHP 将从 BLOB 而不是从 MySQL 表中的 LONGBLOB 生成 jpg 图像

php - 无法找到用于此请求的 SAML 2 绑定(bind)。数组