PHP中的二维关联数组

3 php

在我的代码中,我从sql db获取数据(三列),我想将行存储在关联的PHP数组中.该数组必须是多维的,因为我想使用数据库中的行id作为键,以便我可以获取如下值:

$产品[ "f84jjg"] [ "名称"]

$产品[ "245"] [ "代码"]

我尝试使用以下代码,但它不起作用:

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

另外,如果从变量中获取密钥,我该如何引用密钥呢?我想做的是:

$productName = $products[$thisProd]["name"];
Run Code Online (Sandbox Code Playgroud)

这会有用吗?

Pao*_*ino 8

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

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

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

另请注意,您可以使用mysql_fetch_assoc而不是mysql_fetch_row,这将为您提供数组键作为列名称,这将使这更容易/更清洁:

while($row = mysql_fetch_assoc($sqlresult)) {
    $products[$row['myidcolumn']] = $row;
}
Run Code Online (Sandbox Code Playgroud)

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