动态添加多维数组中的数据

时间:2014-08-27 12:47:26

标签: 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 ($numu > 0) { 

        $colunas = 3;

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

结果: id - 6 nome - teste

这是最后添加的记录。

感谢!!!

2 个答案:

答案 0 :(得分:0)

您现在还没有创建多维数组。您只需更新create two key =>价值对idnome。如果要存储多个数组,则必须创建一个多维数组,这意味着另一个数组中的数组:

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

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

或者做得更聪明(如果最终数组中的键与列名相同):

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

while ($rowu = $stmtu->fetch(PDO :: FETCH_ASSOC)) {
    $lista[] = $rowu;
    $j++;
}

答案 1 :(得分:0)

修改您的代码,如下所示

$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索引(您不需要它;我想您会将其用作"一级索引&#34 ;您的多维数组)并添加了该语句:$lista[] =。 "魔术"发生在那里:使用此命令($arrayname[] =),您可以向现有数组追加一个新元素。

但是,我不知道您从哪里获得$id$nome因此,由于未定义的变量和类似内容,此代码段可能会失败