PHP将2数组变量合并为1

时间:2018-10-09 15:36:29

标签: php arrays

我希望我制定了我的头衔。我想了解如何将2个数组合并为1个数组。

我想做的简单例子:

我有2个数据库表,例如blog_posts和用户。

我想从blog_posts和foreach帖子中选择数据,我想为“ add by”选择信息,例如用户名,user_image等。

通过echo,我设法只显示了<?php echo $user['username']; ?><?php echo $blog['title']; ?>

之类的值。

我想返回那些值,就像在mvc模式中一样。我是如何从不同的主题中进行阅读的,我必须将数据存储到数组中,然后将它们返回,使用一个数组没有问题,但是我不知道如何将它们都返回。

public function getBlogPostList(){
    try{

        $sortby = "SELECT * FROM blog_posts";

        $stmt = $this->connCommunity->prepare("$sortby");
        $stmt->execute();
        $result = $stmt->fetchAll();

        foreach($result as $post){

            $addedby = $post['addedby'];
            $stmt2 = $this->connUsers->prepare("SELECT * FROM users WHERE id=('$addedby')");
            $stmt2->execute();
            $result2 = $stmt2->fetchAll();

            $blog_post = array();
            foreach($result as $post) {
                $blog_post[] = $post;
            }

            foreach($result2 as $user) {
                array_merge($blog_post, $user);
            }
        }

        return $blog_post;

    }
    catch(PDOException $e) {
        echo $e->getMessage();
    }
}

并显示如下数组:

<?php

    foreach ($BlogModel as $BlogModel)
    {
        echo '<tr><td><a href="index.php?id='.$BlogModel['id'].'">'.$BlogModel['id'].'</a></td><td>'.$BlogModel['title'].'</td><td>'.$BlogModel['username'].'</td></tr>';
    }


?>

1 个答案:

答案 0 :(得分:0)

首先从一个简单的查询开始,完成所有工作。

此查询示例假定blog_posts表中具有userId的列为user_id,将其替换为正确的列。用正确的数据库名称替换示例数据库名称communitydbusersdb

$sortby = "SELECT * FROM communitydb.blog_posts p LEFT JOIN usersdb.users u ON u.id = p.user_id";

此后,您只需要返回第一个$ stmt-> fetchAll();即可。到此为止。因此,您的函数getBlogPostList()中的许多代码都是不必要的。

通过循环,您可以循环浏览结果。联接表时,可能是您重复的列名,如果是这种情况,您还应该定义要从用户表中获取的列。例如u.id as userid