从动态表单帖子

时间:2016-07-26 08:01:03

标签: php twitter-bootstrap multidimensional-array

我正在开发一个Web项目,我需要知道的一件事是如何获取数组项的数量并使用该数字从不同的数组中获取项目,我已经设置了一个页面来动态添加Bootstrap面板中有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做一些研究,但我我不确定这是不是我想要的。

1 个答案:

答案 0 :(得分:1)

如果我对问题没有错,那就是解决方案。

$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);