簡體   English   中英

通過php將新元素添加到MySQL查詢的結果中

[英]Add new elements to the result from MySQL query via php

我有以下問題,假設我正在查詢 MySQL 數據庫以獲取以下數組:

Array ( [0] => Array ( [topicid] => 4 ) [1] => Array ( [topicid] => 5 ) [2] => Array ( [topicid] => 6 ) )

這些是我從以下 SQL 請求中得到的結果

 $sql=$db->query("SELECT topicid from opentopics WHERE userid=?","$userid")->fetchAll();

此查詢為我提供了對某些用戶 ID 開放的主題列表。 現在有幾個 ID 最多為 3 的主題對所有人開放,所以我也想在我的網頁上使用它們。 這些主題不會在 opentopics 表中打開,而是根據每個人的 ID(少於 3 個)提供給每個人。

所以問題如下,如何修改從 MySQL 請求中獲得的多維(我假設)數組,如何向上述數組的開頭添加 3 個新條目,使其看起來像:

Array ( [0] => Array ( [topicid] => 1 ) [1] => Array ( [topicid] => 2 ) [2] => Array ( [topicid] => 3 ) [3] => Array ( [topicid] => 4 ) [4] => Array ( [topicid] => 5 ) [5] => Array ( [topicid] => 6 ) )

正如您可能在我的文本編輯器中注意到的那樣,我通過添加以下內容手動編輯了數組的文本

[0] => Array ( [topicid] => 1 ) [1] => Array ( [topicid] => 2 ) [2] => Array ( [topicid] => 3 )

你可以像這個例子一樣獲取你的結果然后使用 array_merge

$mysqli = new mysqli('localhost', 'root', '', 'test');

$manual = array(
    [ 'id' => 9 , 'first_name' => 'John9' , 'last_name' => 'Doe9'] ,
    [ 'id' => 19 , 'first_name' => 'John19' , 'last_name' => 'Doe19']
);

$sql = " SELECT * from users ";
$result = $mysqli -> query($sql);
$rows   = $result -> fetch_all(MYSQLI_ASSOC);

$results = array_merge($manual , $rows);

結果會是這樣

Array
(
    [id] => 9
    [first_name] => John9
    [last_name] => Doe9
)
Array
(
    [id] => 19
    [first_name] => John19
    [last_name] => Doe19
)
Array
(
    [id] => 1
    [first_name] => John
    [last_name] => Doe
)
Array
(
    [id] => 2
    [first_name] => John3
    [last_name] => Doe
)
Array
(
    [id] => 4
    [first_name] => John4
    [last_name] => Doe
)

暫無
暫無

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

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