php 创建关联数组的数组[重复]

djmepvbi  于 2023-01-24  发布在  PHP
关注(0)|答案(4)|浏览(177)
    • 此问题在此处已有答案**:

(9个答案)
7个月前关闭。
我想在while循环中创建一个关联数组的数组,在while循环的每次迭代中,我想在数组中添加一个新元素,我该怎么做呢?,然后我想把这个数组传入foreach,并打印数据,我现在有这部分代码,但很明显这部分有问题。

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

l3zydbqr1#

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

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

deyfvvtc2#

很明显,好吧,先把它拆开,这样就有东西要学了:

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>'
}
093gszye

093gszye3#

如果你想在每次迭代中添加到$myarray中,可以这样做:

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

或者像这样:

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

qlfbtfca4#

显然,您对$row2的访问看起来是错误的,所以我假设这里是正确的

$myarray = array();
while($row2 = mysql_fetch_array($result)) { 
  // append something to your array with square brackets []
  $myarray[] = array("id"=> $row2['id'], "name" => $row2['name'], "text"=>$row2['text']);

  // or to maker this even shorter you could do
  $myarray[] = $row2; // ... because it has the same array key names
}

然后当你想读的时候:

foreach($myarray as $val) {
  echo $val['name'].' (ID: '.$val['id'].') wrote following text: '.$val['text'];
}

相关问题