【问题标题】:How to create multidimensional array from php post?如何从 php post 创建多维数组?
【发布时间】:2021-12-23 23:27:07
【问题描述】:

如何从 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']]]

【问题讨论】:

  • 好吧,那是什么阻止了你。
  • $val = $_POST['location']; $arr = []; for($i = 0; $i &lt;= $val; $i++) { $arr[] = [$_POST['location'][$i] =&gt; [$_POST['msg'][$i] =&gt; $_POST['id'][$i]]]; } exit(var_export($arr)); 只显示结果 null array ( 0 =&gt; array ( '' =&gt; array ( '' =&gt; NULL, ), ), )
  • 您看到问题下方的edit 链接了吗?要以可读的方式向问题添加有用信息,请单击该信息并添加到您的问题中。毕竟那是人们期望看到所有相关信息的地方
  • 好吧,$val = $_POST['location']; 不是一个数字,也许您打算使用 $val = count($_POST['location']); 但 foreach 会简单得多
  • 你能给我看一个使用foreach的示例代码吗?

标签: php arrays multidimensional-array associative-array


【解决方案1】:

你犯了一些简单的错误

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

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

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

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

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

【讨论】:

  • 谢谢你,先生,似乎工作
猜你喜欢
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2015-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多