2

我有5个这样的数组

print_r($_POST['ponumber']);
print_r($_POST['man_part_number']);
print_r($_POST['model']);
print_r($_POST['damaged']);
print_r($_POST['serial_number']);
print_r($_POST['skid']);

产生

Array
(
    [0] => 111111
    [1] => 111111
    [2] => 111111
    [3] => 111111
)
Array
(
    [0] => 11C2555
    [1] => 11C2555
    [2] => 11C2555
    [3] => 11C2555
)
Array
(
    [0] => FORMS PRINTER 2500 SERIES
    [1] => FORMS PRINTER 2500 SERIES
    [2] => FORMS PRINTER 2500 SERIES
    [3] => FORMS PRINTER 2500 SERIES
)
Array
(
    [0] => 0
    [1] => 0
    [2] => 0
    [3] => 0
)
Array
(
    [0] => CNCQ202070
    [1] => CNCQ210800
    [2] => MY5203B1KQ
    [3] => CN1863Q0PQ
)
Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 1
)

我需要根据键组合它们,以便我得到 4 个数组,看起来像这样

Array
(
    [0] => 111111
    [1] => 11C2555
    [2] => FORMS PRINTER 2500 SERIES
    [3] => 0
    [4] => CNCQ202070
 )

等等...

它需要匹配每个数组中的每个键,并将它们组合成一个数组。我正在尝试 array_combine 和 array_merge 但我认为这不是正确的方法。任何人?

4

4 回答 4

4
$items = array();

for($x = 0; $x < count($_POST['ponumber']); $x++){
    $item = array($_POST['ponumber']);
    $item[] = $_POST['ponumber'][$x];
    $item[] = $_POST['man_part_number'][$x];
    $item[] = $_POST['model'][$x];
    $item[] = $_POST['damaged'][$x];
    $item[] = $_POST['serial_number'][$x];
    $item[] = $_POST['skid'][$x];
    $items[] = $item;
}

将给出您需要的数组的数组。请注意,这假定所有数组的大小相同。如果不是这种情况,您可能需要添加一些检查。

于 2013-01-09T03:27:48.840 回答
1

您是否尝试过使用嵌套的 foreach 循环来创建五个新数组?

诚然,它漫长而乏味,但如果您急需它,这可能是一个开始?

于 2013-01-09T03:21:43.993 回答
0

你可以使用这个:

$counter = 0;
$temp = array();
 if(isset($_POST)){ // check if $_POST isset.

foreach($_POST as $key=>$myarr)
    {
       foreach($myarr as $k=>$value)
       {

          $temp[$counter] = $value;
          break;
       }
       $counter++;
    }
    }

检查你可以做:

var_dump($temp);

希望我有所帮助

于 2013-01-09T03:40:45.497 回答
0

如果您可以这样构造表单,您将获得一个更友好的$_POST数组:

<form>
  <input name="data[0][ponumber]" />
  <input name="data[0][man_part_number]" />
  <input name="data[0][model]" />
  <input name="data[0][damaged]" />
  <input name="data[0][serial_number]" />
  <input name="data[0][skid]" />

  <input name="data[1][ponumber]" />
  <input name="data[1][man_part_number]" />
  <input name="data[1][model]" />
  <input name="data[1][damaged]" />
  <input name="data[1][serial_number]" />
  <input name="data[1][skid]" />
</form>

$_POST看起来像:

'data' => array(
  0 => array(
    'ponumber' => '111111',
    'man_part_number' => '11C2555',
    'model' => 'FORMS PRINTER 2500 SERIES',
    'damaged' => '0',
    'serial_number' => 'CNCQ202070',
    'skid' => '1',
  ), ...
)
于 2013-01-09T04:10:05.970 回答