我正在做一个web项目,我需要知道的一件事是如何获取数组项的编号,并使用该编号从不同的数组中获取项,我设置了一个页面来动态添加Bootstrap Panels,其中有2个输入框。
<div class="panel panel-default">
<div class="panel-heading">
<a data-toggle="collapse" data-parent="#accordion" href="#<?php echo $index; ?>">
<h4 class="panel-title">
<?php echo $menu[0]; ?> <b class="caret pull-right"></b>
</h4>
</a>
</div>
<div id="<?php echo $index; ?>" class="panel-collapse collapse">
<div class="panel-body">
<div class="form-group">
<label for="menu_name[]">Name:</label>
<input id="menu_name[]" name="menu_name[]"placeholder="Name">
</div>
<div class="form-group">
<label for="menu_link[]">Link:</label>
<input id="menu_link[]" name="menu_link[]" value="<?php echo $menu[1]; ?>" placeholder="URL">
</div>
<div class="btn-group pull-right">
<button class="btn btn-danger" type="submit" name="delete" value="<?php echo $index; ?>"><i class="fa fa-trash"></i> Delete</button>
</div>
</div>
</div>
这个表单用于添加菜单,以创建一个包含每个菜单项文本和链接的数组,当我提交表单时,我得到的结果是:
[["Home", "News"], ["http://localhost/", "http://localhost/news/"]]
但我想格式化数组,使每个菜单项都在一个单独的数组中,而不是在数组之间分割2个选项,下面是我想要实现的输出示例:
[["Home", "http://localhost"], ["News", "http://localhost/news"]]
我不知道如何做到这一点,我到处寻找解决方案或例子来提供帮助,但我什么都找不到,我正在对array_search
进行一些研究,但我不确定这是否是我想要的。
如果我对这个问题没有错,这就是解决方案。
$json = '[["Home", "News"], ["http://localhost/", "http://localhost/news/"]]';
list($names, $links) = json_decode($json);
for ($k=0; $k<count($names); $k++)
echo sprintf('Link is "%s" for "%s"', $links[$k], $names[$k]).PHP_EOL;
更新
$json = '[["Home", "News"], ["http://localhost/", "http://localhost/news/"]]';
$output = array();
list($names, $links) = json_decode($json);
for ($k=0; $k<count($names); $k++)
$output[] = array($names[$k], $links[$k]);
然后您可以看到带有print_r函数的数组。
print_r($output);
以及json_encode 的json
echo json_encode($output);