【问题标题】:Creating a Select from a multidimensional array从多维数组中创建 Select
【发布时间】:2019-02-23 15:51:55
【问题描述】:

所以我有一个来自数据库查询的数组,它是这样的:

数组(

[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”。 我尝试了一些方法,例如创建变量:

$id = "0"; // $id = "[0]";

还是不行。

在这种情况下我应该如何调用数组中的数组?

【问题讨论】:

    标签: php arrays for-loop select multidimensional-array


    【解决方案1】:

    它不起作用,因为您必须使用引号或转义它们。你可以简单地使用implode()

    <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 很高兴它能以某种方式帮助你,祝你好运:)
    【解决方案2】:

    您好,欢迎使用 Stackoverflow,

    我很难阅读你的问题,所以我希望我已经理解你想要什么。

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

    【讨论】:

    • 我从未在回声呼叫中使用“\”我不确定它的作用,但它确实有效!
    • 在这种情况下,“\”将下一个字符视为字符串的一部分,而不是分隔符。否则 " 将结束字符串。
    【解决方案3】:

    manual : String Operators

    当你写的时候:

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

    就像你想为那个选项设置一个值,它是字符串 '$idnameCli[$i][1]' ;如果你希望值是“johnny”,你可以写"&lt;option value='johnny'&gt;

    在 PHP 中,您可以使用“.”连接字符串和变量。喜欢:

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

    在你的情况下,两个变量彼此相邻(这里它们之间有一个空格):

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

    【讨论】:

    • 谢谢,很有用^^
    猜你喜欢
    • 2014-11-03
    • 1970-01-01
    • 2014-12-10
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多