Нажатие на массив больше пользовательских значений - PullRequest
0 голосов
/ 04 сентября 2018

Я сделал простой урок, чтобы ускорить мою работу в школе. Theres одна функция:

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 )

Что является результатом выбора столбца name и realname. Теперь работа с кодом заставила меня использовать многомерный массив, поэтому желаемый результат будет выглядеть так:

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

Таким образом, результаты будут разделены, но я не могу выяснить, как соединить два (или более) столбца в массиве. Насколько я знаю, я должен изменить свой foreach, но я понятия не имею, как это сделать.

1 Ответ

0 голосов
/ 04 сентября 2018

Вы почти у цели.

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

вместо:

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

должно быть всем, что нужно, чтобы вставить результаты в соответствующий подмассив и получить желаемый результат.

...