Php 在多维数组中动态添加数据

Php 在多维数组中动态添加数据,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我需要将数据动态添加到多维数组中。数据来自数据库中的查询。我可以看穿“echo”所有元素,但要及时添加到多维向量数据中,并只覆盖添加的最后一条记录 我的例子如下: $queryu = "SELECT * FROM usuario ORDER BY id"; $stmtu = $con->prepare($queryu); $stmtu->execute(); $numu = $stmtu->rowCount(); $j = 0; $lista; if

我需要将数据动态添加到多维数组中。数据来自数据库中的查询。我可以看穿“echo”所有元素,但要及时添加到多维向量数据中,并只覆盖添加的最后一条记录

我的例子如下:

$queryu = "SELECT * FROM usuario ORDER BY id";
$stmtu = $con->prepare($queryu);
$stmtu->execute();

$numu = $stmtu->rowCount();
    $j = 0;
    $lista;

    if ($numu > 0) { 

        $colunas = 3;

        while ($rowu = $stmtu->fetch(PDO :: FETCH_ASSOC)) {
            extract($rowu);                         
            $lista['id'] = $id;
            $lista['nome'] = $nome;
            $j++;
        }
    }
结果是: id-6 诺姆睾丸

这是最后添加的记录


谢谢

您现在还没有创建多维数组。您只需更新创建两个键=>值对
id
nome
。如果要存储多个,则必须创建多维数组,这意味着在另一个数组中创建一个数组:

$lista = array(); // init your array!

while ($rowu = $stmtu->fetch(PDO :: FETCH_ASSOC)) {
    extract($rowu);                         
    $lista[] = array(
        'id' => $id,
        'nome' => $nome
    );
    $j++;
}
或者做得更聪明(如果最终数组中的键与列名相同):


按如下方式修改代码

$queryu = "SELECT * FROM usuario ORDER BY id";
$stmtu = $con->prepare($queryu);
$stmtu->execute();

$numu = $stmtu->rowCount();
$lista = array();

if ($numu > 0) { 
  $colunas = 3;

  while ($rowu = $stmtu->fetch(PDO :: FETCH_ASSOC)) {
    extract($rowu);                         
    $lista[] = array('id' => $id, 'nome' => $nome);
  }
}
正如您在这里可能注意到的,我删除了
j
索引(您不需要它;我想您可以将它用作多维数组的“第一级索引”),并添加了以下语句:
$lista[]=
。“魔力”就在这里:通过这个命令(
$arrayname[]=
),您可以将一个新元素附加到现有数组中


但是,我不知道从哪里获得
$id
$nome
,因此,由于未定义变量和类似的

增量j,此代码段可能会失败,但不会将其存储在任何位置。试试$id[$j]=$lista['id']和$nome[$j]=$lista['nome']你能试着重新表述一下这个问题吗?很难理解你的问题是什么(看起来像是翻译错误)
$queryu = "SELECT * FROM usuario ORDER BY id";
$stmtu = $con->prepare($queryu);
$stmtu->execute();

$numu = $stmtu->rowCount();
$lista = array();

if ($numu > 0) { 
  $colunas = 3;

  while ($rowu = $stmtu->fetch(PDO :: FETCH_ASSOC)) {
    extract($rowu);                         
    $lista[] = array('id' => $id, 'nome' => $nome);
  }
}