首页 > 解决方案 > 通过键(列表)添加数组值

问题描述

我想我已经回收了,大脑不再沸腾了。请告诉我如何删除这些不必要的钥匙里面的钥匙?

看来我的 foreach 有点歪,我很高兴看到解决这个问题的提示。先感谢您。

我有什么输出:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [id] => asdasd
                )

            [1] => Array
                (
                    [server] => asdadsasd
                )

            [2] => Array
                (
                    [login] => asdasdads
                )

            [3] => Array
                (
                    [ip] => adsads
                )

            [4] => Array
                (
                    [date] => dasadsads
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [id] => 12123123
                )

            [1] => Array
                (
                    [server] => 123213213
                )

            [2] => Array
                (
                    [login] => 321231123
                )

            [3] => Array
                (
                    [ip] => 213231213
                )

            [4] => Array
                (
                    [date] => 321213213
                )

        )

)

我需要做什么:

Array
(
    [0] => Array
        (
            [id] => asdasd
            [server] => asdadsasd
            [login] => asdasdads
            [ip] => adsads
            [date] => dasadsads
        )

    [1] => Array
        (
            [id] => 12123123
            [server] => 123213213
            [login] => 321231123
            [ip] => 213231213
            [date] => 321213213
        )

)

test2.php 代码:

<?php
    //header('Content-Type: application/json');

    $commands = array();
    foreach($_POST as $key => $value) {
        foreach($_POST[$key] as $name => $val) {
            $commands[$name][] = array($key => $val);
        }
    }

    print_r($commands);
    //echo json_encode($commands, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
?>

我尝试$commands[$name] = array($key => $val);了,但他愚蠢地替换了意思并替换了一个新的意思,当然。

带有表单的 PHP 页面:

<form action="test2.php" method="POST" id="insert-all-form">
    <input type="hidden" id="insert-all" name="insert-all">
    <div id="insert-line" class="field is-horizontal m-t-20 dis-block">
        <div class="field-body">
            <?php
                while($prop = mysqli_fetch_array($result)) {
            ?>                    
            <div class="field is-narrow">
                <label class="label"><?=$prop[0]?></label>
                <div class="control">
                    <input class="input" type="text" name="<?=$prop[0]?>[]" placeholder="<?=$prop[1]?> <?=$prop[5]?>">
                </div>
            </div>
            <?php } ?>
        </div>
    </div>
</form>

标签: phparrays

解决方案


感谢@u_mulder 的提示。这对我有用->

<?php
    header('Content-Type: application/json');

    $commands = array();
    foreach($_POST as $key => $value) {
        foreach($_POST[$key] as $name => $val) {
            $commands[$name][$key] = $val;
        }
    }

    print_r($commands);
?>

推荐阅读