繁体   English   中英

从多维数组创建 Select

[英]Creating a Select from a multidimensional array

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

大批 (

[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]";

还是行不通。

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

它不起作用,因为您必须使用引号或转义它们。 你可以简单地使用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

嗨,欢迎来到 Stackoverflow,

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

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

参见手册:字符串运算符

当你写:

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

就像您想为该选项设置一个值,即字符串'$idnameCli[$i][1]' ; 如果您希望值为“johnny”,您可以写"<option value='johnny'>

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM