簡體   English   中英

動態地在多維數組中添加數據

[英]Add data in a multidimensional array dynamically

我需要將數據動態添加到多維數組中。 數據來自數據庫中的查詢。 我可以通過“回聲”看到所有元素,但是可以及時將其添加到多維矢量數據並覆蓋僅添加了最后一條記錄。

我的例子如下:

$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

這是最后添加的記錄。

謝謝!!!

您現在不創建多維數組。 您只需更新創建兩個鍵=>值對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++;
}

如下修改您的代碼

$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因此由於未定義變量和類似原因,此代碼片段可能會失敗

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM