首页 > 解决方案 > 推送到数组更多用户指定的值

问题描述

我做了简单的课程,以使我在学校的工作更快。有一个功能:

function selectWhere($what, $from, $where) {

    $sql = "SELECT ".$what." FROM ".$from." WHERE ".$where;
    if($result = $this->conn->query($sql)) {
        if($result->num_rows > 0) {
            $a = Array();
            if(strpos($what, ", ")) {
                $exp = explode(", ", $what);
                while($r = $result->fetch_assoc()) {
                    foreach ($exp as $key => $val) {
                        $a[] = $r[$val];
                    }
                }
                return $a;
            }
            else {
                while($r = $result->fetch_assoc()) {
                    $a[] = $r[$what];
                }
                return $a;
            }
        }
    }
    else {
        return "Błędne zapytanie.";
    }
}

在我想选择多个列之前,这很有效。此代码的基本上输出如下所示:

Array ( [0] => LeviPlayGames [1] => leviplaygames [2] => TestUser [3] => testuser )

这是选择姓名和实名列的结果。现在使用代码迫使我使用多维数组,因此所需的输出将如下所示:

Array ( [0] => Array ( [0] => LeviPlayGames [1] => leviplaygames ) [1] => Array ( [0] => TestUser [1] => testuser ) )

所以结果将被分开,但我不知道如何连接数组中的两个(或更多)列。据我所知,我必须改变我的 foreach,但我不知道该怎么做。

标签: phparraysfunctionmultidimensional-arrayforeach

解决方案


你快到了。

 $a[$key][] = $r[$val];

代替:

 $a[] = $r[$val];

应该是在适当的子数组中插入结果并获得所需输出所需的全部内容。


推荐阅读