Есть ли способ сортировки элементов Array по переменным? - PullRequest
0 голосов
/ 22 апреля 2020

Я написал функцию, которая считывает атрибуты из базы данных и возвращает значение в массиве:

public function test($username) {
            $stmt = $this->con->prepare("SELECT * FROM test WHERE username = ?");
            $stmt->bind_param("s",$username);
            $stmt->execute();
            return $stmt->get_result()->fetch_assoc();
        }

Я хочу разделить элементы массива на переменные.

require_once __DIR__.'/DbOperations.php';
$db = new DbOperations(); 
$file_path =$db->test($_POST['username']);
//var_dump($file_path); 
foreach($file_path as $value){
    //echo $value . "<br>";
    $i=0;
    $i=$i+1;
    if ($i=1)
    $username=$value;
    if ($i=2)
    $role=$value;
    if ($i=3)
    $URL=$value;
}
echo $username. $role.$URL."<br>";

Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Я думаю, вы описываете функцию extract. Он превращает ключи массива в переменные. https://www.php.net/manual/en/function.extract.php

0 голосов
/ 22 апреля 2020

Вы можете использовать динамические c имена переменных:

foreach ($file_path as $key=>$value) {
  $$key = $value;
}

Я изо всех сил пытаюсь понять, почему это лучше, чем объединять их все в один прекрасный массив, но это может выходить за рамки вопрос.

Ваш код будет бороться, потому что вы устанавливаете $i=0 на каждой итерации, а затем в каждом операторе if вы присваиваете ему другое значение. Прочитайте информацию о разнице между =, == и === для операций присваивания и сравнения.

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