通过php将新元素添加到MySQL查询的结果中



我有以下问题,假设我正在查询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
)

最新更新