Создание Select из многомерного массива

Итак, у меня есть массив из запроса к базе данных, это примерно так:

Множество (

[0] => Array
    (
        [0] => 1
        [1] => Name1
    )

[1] => Array
    (
        [0] => 3
        [1] => Name2
    )

[2] => Array
    (
        [0] => 4
        [1] => Name3
    )

Я пытаюсь создать из этого Select (у него +50 массивов, а не только 2), и я попытался сделать это:

<select name = "client" onchange = "this.form.submit()">
                <option value = "" disabled selected>--client--</option>
                <?php
                    for ($i = 0; $i < count($idnameCli); $i++) { 
                        echo "<option value='$idnameCli[$i][1]'>$idnameCli[$i][0] $idnomCli[$i][1] </option>";
                    }
                ?>
</select>

Проблема в том, что он не принимает второй [ ], поэтому он показывает «Array[0]Array[1]» вместо «3Name2». Я попробовал пару вещей, таких как создание переменных:

$идентификатор = "0"; // $id = "[0]";

До сих пор не работает.

Как мне вызвать массив в массиве в этом случае?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
492
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Это не работает, потому что вы должны использовать кавычки или избегать их. Вы можете сделать это, просто используя взорваться (),

<select name = "client" onchange = "this.form.submit()">
                <option value = "" disabled selected>--client--</option>
                <?php
                    for ($i = 0; $i < count($idnameCli); $i++) { 
                        echo "<option value='".$idnameCli[$i][1]."'>". implode('',$idnameCli[$i]) ."</option>";
                    }
                ?>
</select>

ДЕМО:https://3v4l.org/TATGZ

Это именно то, что я искал, не знал, что существует implode, который делает его намного чище! Я новичок в php, и я все еще путаюсь с кавычками. Спасибо!

TraaZ 23.02.2019 17:33

@TraaZ рад, что это вам как-то помогло, удачи :)

Always Sunny 23.02.2019 17:37

Привет и добро пожаловать в Stackoverflow,

Мне было очень трудно прочитать ваш вопрос, поэтому я надеюсь, что понял, чего вы хотите.

<select>
<?php for($i = 0; $i<sizeof($prova); $i++){
    echo "<option value=\"".$arr[$i][0]."\">".$arr[$i][0]."-".$arr[$i][1]."</option> ";
} ?>
</select>

Я никогда не использовал «\» в эхо-вызове. Я не уверен, что он делает, но он работает!

TraaZ 23.02.2019 17:31

В этом случае "\" считает следующий символ частью строки, а не разделителем. В противном случае " завершит строку.

PHPnoob 23.02.2019 17:36

См. руководство : Строковые операторы

Когда вы пишете:

echo "<option value='$idnameCli[$i][1]'> ...

Это похоже на то, что вы хотите установить значение для этой опции, которая является строкой '$idnameCli[$i][1]'; если бы вы хотели, чтобы значение было «джонни», вы бы написали "<option value='johnny'>

В PHP вы объединяете строки и переменные с помощью "." как :

"<option value='" . $idnameCli[$i][1] . "'> ...

А также в вашем случае две переменные рядом друг с другом (здесь с пробелом между ними):

echo "<option value='" . $idnameCli[$i][1] . "'>" . $idnameCli[$i][0] . " " . $idnomCli[$i][1] . "</option>"; 

Спасибо, очень полезно ^^

TraaZ 23.02.2019 19:24

Другие вопросы по теме