在PHP中创建关联数组的数组

ann*_*nna 9 php arrays append arrayofarrays

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

while($row2 = mysql_fetch_array($result))
{ 
    $myarray = array("id"=>$theid, "name"=>name($id), "text"=>$row2[text]);
                            }
Run Code Online (Sandbox Code Playgroud)

lal*_*tin 20

要在数组末尾添加元素,请使用[]
示例:

$myarray[] = array("id"=>$theid, "name"=>name($id), "text"=>$row2[text]);
Run Code Online (Sandbox Code Playgroud)


hak*_*kre 7

显然,好吧,首先将它拆开,以便有所学习:

while($row2 = mysql_fetch_array($result))
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

$myarray = array("id"=>$theid, "name"=>name($id), "text"=>$row2[text]);
Run Code Online (Sandbox Code Playgroud)

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

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

之后,您可以输出它以证明它基本上有效:

var_dump($myarray);
Run Code Online (Sandbox Code Playgroud)

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

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

$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);
Run Code Online (Sandbox Code Playgroud)

现在结果应该看起来像你想要的那样.要输出$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>'
}
Run Code Online (Sandbox Code Playgroud)