使用PHP循环遍历POST数组

时间:2019-02-02 16:46:14

标签: php

我的网站上有一个表格。当我把它提交给我的PHP脚本我使用var_dump($_POST);表明已提交的所有表单数据。阵列遵循以下。

我想使用PHP在以下数组上运行 foreach 循环,并按索引对它们进行分组。

预期输出:

1 - 111 - 1
2 - 222 - 2
3 - 333 - 3

因此,每行将基于数组元素中的整数具有相关的名称,源和级别

有人可以解释如何做到这一点?

array(11) {
  ["source_name0_id"]=>
  string(1) "1"
  ["source_code0_id"]=>
  string(3) "111"
  ["source_level0_id"]=>
  string(1) "1"
  ["source_name1_id="]=>
  string(1) "2"
  ["source_code1_id="]=>
  string(3) "222"
  ["source_level1_id="]=>
  string(1) "2"
  ["source_name2_id="]=>
  string(1) "3"
  ["source_code2_id="]=>
  string(3) "333"
  ["source_level2_id="]=>
  string(1) "3"
  ["submit"]=>
  string(6) "Submit"
}

谢谢!

2 个答案:

答案 0 :(得分:0)

$foreach($array /* or in the case $_POST? */ as $key => $value) {
    /// loop...
}

或者只是

$foreach($array as $value) {
    /// loop...
}

编辑:因此,要获得期望的输出,如果您提前知道最大值,则确实有另一种简便方法:

$for($i = 0; $i<$max /* if you have it */; $i++) {
  echo $_POST["source_name" . $i . "_id"] . " - " .
     $_POST["source_code" . $i . "_id"] . " - " .
  $_POST["source_level" . $i . "_id"] . "<br>\n";
}

答案 1 :(得分:-1)

<?php

$array = [
    "source_name0_id"=> "1",
    "source_code0_id"=> "111",
    "source_level0_id"=> "1",
    "source_name1_id="=> "2",
    "source_code1_id="=> "222",
    "source_level1_id="=> "2",
    "source_name2_id="=> "3",
    "source_code2_id="=> "333",
    "source_level2_id="=> "3",
    "submit"=> "Submit"
];

$output = [];

foreach($array as $key=>$val)
{
    $output[] = [$val, $key, $val];
}

echo '<pre>';
print_r($output);