创建关联数组的数组

新手上路,请多包涵

我想在 while 循环中创建一个关联数组数组。在 while 循环的每次迭代中,我想在数组中添加一个新元素。我该怎么做?之后我想在 foreach 中传递这个数组并打印数据。我现在有这部分代码,但显然有问题。

 while($row2 = mysql_fetch_array($result))
{
    $myarray = array("id"=>$theid, "name"=>name($id), "text"=>$row2['text']);
}

原文由 anna 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 272
2 个回答

要在数组末尾添加一个元素,请使用 []

例子:

 $myarray[] = array("id"=>$theid, "name"=>name($id), "text"=>$row2[text]);

原文由 laltin 发布,翻译遵循 CC BY-SA 3.0 许可协议

显然,好吧,首先把它拆开,这样就可以学到一些东西:

 while($row2 = mysql_fetch_array($result))
{
    ...
}

这部分看起来没问题,让我们看看循环内部:

 $myarray = array("id"=>$theid, "name"=>name($id), "text"=>$row2[text]);

有多个点。可能最重要的是,因为它在循环内,所以您在每次迭代中覆盖 $myarray 。您想要添加到数组中。我们开工吧:

 $myarray = array(); # initialize the array first!
while($row2 = mysql_fetch_array($result))
{
    $myarray[] = $row2; # add the row
}

之后你可以输出它来证明它基本上有效:

 var_dump($myarray);

这向您显示了一个包含所有行的数组。然后您只需要更改您的数据库查询,以便它只返回您感兴趣的字段。

如果您不能对数据库执行此操作,您也可以操作数组:

 $myarray = array(); # initialize the array first!
while($row2 = mysql_fetch_array($result))
{
    $myarray[] = array(
        "id"   => $theid,
        "name" => name($id),
        "text" => $row2['text']
    );
}
var_dump($myarray);

现在结果应该如您所愿。输出 $myarray

 foreach ($myarray as $number => $row)
{
    echo '<div>Number ', $number, ':<dl>';
    foreach ($row as $k => $v)
    {
        printf("<dt>%s</dt><dd>%s</dd>\n", $k, htmlspecialchars($v));
    }
    echo '</dl></div>'
}

原文由 hakre 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏