PHP Массив перезаписывается при выходе из режима l oop, где назначены значения - PullRequest
1 голос
/ 22 апреля 2020

В моей базе данных есть таблица с именем statussen из 10 цветов. Теперь я хочу поместить эти цвета в массив, чтобы я мог их использовать, я поместил 2 маркера в свой код, потому что в Marker1 массив полностью заполнен 10 цветами. Но как только я выберу l oop (где находится Marker2), остается только последний цвет. Я также нашел этот вопрос здесь: массив перезаписывается последним элементом в php. Но я не думаю, что это относится к моей проблеме. Спасибо всем за помощь

$colors = array();
$result = mysqli_query($_SESSION['conn'], "SELECT kleur FROM statussen;");
while ($row=mysqli_fetch_row($result)) 
{
    for ($i = 0;$i < 10; $i++)
    {
        $colors[$i] = $row[$i];
    }
    //Marker1
}
//Marker2

1 Ответ

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

Насколько я понимаю:

Вы используете в то время как l oop, что l oop через массив один, так что есть только одна запись внутри, в то время как l oop за раз и так же для for l oop (что не обязательно)

Во-вторых, вы добавляете индекс $colors[$i]. Каждый раз для инициализации l oop он устанавливает $i = 0, а это означает, что он устанавливает значение $colors[0] = $row[$i], чтобы получить переопределение.

Вы можете напрямую использовать код, подобный следующему:

$colors = array();
$result = mysqli_query($_SESSION['conn'], "SELECT kleur FROM statussen;");
while ($row=mysqli_fetch_row($result)) 
{
    $colors[] = $row[$i];
}
//Marker2

обратите внимание, что нет индекса для массива цветов $colors[], в этом случае PHP автоматически добавляет индекс приращения к нему, начиная от 0.

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