推送以排列更多用户指定的值

时间:2018-09-04 19:35:17

标签: php arrays function multidimensional-array foreach

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

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,但是我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

你快到了。

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

代替:

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

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