【问题标题】:Two dimensional associative array in PHPPHP中的二维关联数组
【发布时间】:2009-06-14 04:25:03
【问题描述】:

在我的代码中,我从 sql db 获取数据(三列),并且我想将行存储在关联的 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"];

这行得通吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    应该这样做,假设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;
    }
    

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

    【讨论】:

      猜你喜欢
      • 2017-04-16
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 2013-09-10
      相关资源
      最近更新 更多