php - PHP for循环不附加所有字符串
问题描述
我正在尝试创建一个为 Bootstrap 4 表单输入下拉菜单生成代码的 PHP 函数。数据是从 JSON 文件中读取的,并使用 for 循环将每一行附加到字符串变量中。我正在使用 '$json_obj = json_decode('file_name.json', true)' 来读取数据。
示例 JSON 输入 :::
[{
"name": "Peter",
"user_name": "ughcsa484"
},
{
"name": "Sam",
"user_name": "ss648"
},
{
"name": "John",
"user_name": "7eddc4c"
},
{
"name": "Helen",
"user_name": "thec7841"
}]
代码 :::
$output = '<select class="custom-select" id="'.$element.'">';
$output = $output . '<option selected value="999">Select...</option>';
for($i=0;$i<sizeof($json_obj);$i++)
{
echo($i.' - '.$json_obj[$i]["name"]);
$output = $output . '<option value="'.$i.'">'.$json_obj[$i]["name"].'</option>';
}
$output = $output . '</select>';
for 循环内的字符串 append 只工作一次。但是 for 循环工作正常,for 循环内的“echo”函数也打印所有行。
从for循环中的'echo'函数打印出来:::
0 - Peter
1 - Sam
2 - John
3 - Helen
下拉列表中可用的选项 :::
Select...
Peter
注意 ::: 生成的 HTML 代码作为字符串值保存在 PHP 变量 $output 中。由于这是一个函数,字符串被返回并打印在主文件中,并带有“echo”。
生成的 HTML 代码 :::
<select class="custom-select" id="element">
<option selected value="999">Select...</option>
<option value="0">Peter</option>
</select>
所需的 HTML 代码 :::
<select class="custom-select" id="element">
<option selected value="999">Select...</option>
<option value="0">Peter</option>
<option value="1">Sam</option>
<option value="2">John</option>
<option value="3">Helen</option>
</select>
解决方案
推荐阅读
- ssl - SSL 连接失败:错误:1408F10B:SSL 例程:ssl3_get_record:错误的版本号
- javascript - GAS:通过工作表执行业务逻辑搜索的 Google 可视化查询
- ios - Fastlane 在上传到 TestFlight 时失败
- awk - 如果匹配发生,则删除第二个匹配项
- perl - 我需要用 PHP 格式在 Perl 中序列化
- python - ModuleNotFoundError:没有名为“discord_webhook”的模块
- php - 如何通过php在html表中回显超链接
- android - 将 Android 微调器与 php 文件数组连接
- python - 专注于python tkinter中的一个窗口
- python - 为什么这个反转数字的代码会给出“inf”作为输出?