首页 > 解决方案 > 如何从 php post 创建多维数组?

问题描述

如何从 php post 创建多维和关联数组?

        $html .= '<td><input id="location" name="location['.$i.']" type="text" class="form-control form-control-sm form-control-solid" placeholder="result data (kosongkan jika tidak diperlukan)" value=""/></td>';
        $html .= '<td><input id="msg" name="msg['.$i.']" type="text" class="form-control form-control-sm form-control-solid" value="' . htmlspecialchars($key) . '"/></td>';
        $html .= '<td><input id="order_id" name="order_id['.$i.']" type="text" class="form-control form-control-sm form-control-solid" value="' . htmlspecialchars($value) . '"/></td>';

我想做这样的数组输出:

[$_POST['location'] => [$_POST['msg']=>$_POST['order_id']]]

标签: phparraysmultidimensional-arrayassociative-array

解决方案


你犯了一些简单的错误

您可以在数组上进行 foreach,然后您不在乎它有多大或多小。$_POST 中使用的变量也有错误。

使用该foreach( $arr as $index => $value)语法可以为您正在处理的数组提供索引,如果所有 3 个数组的大小始终相同,则可以使用它来引用其他数组。

$arr = [];
foreach ( $_POST['location'] as $i => $locn ) {
    $arr[$locn][] = [ $_POST['msg'][$i] => $_POST['order_id'][$i] ];
}

它有助于调试你的代码,如果你

例如,在打开 PHP 标记后立即进行测试时,将错误报告添加到文件的顶部。即使您在配置为 LIVE 的服务器上进行开发,您现在也会看到任何错误。 <?php error_reporting(E_ALL); ini_set('display_errors', 1);


推荐阅读