访问数组中的数组元素并将它们组合在一个数组中

时间:2017-11-03 10:49:13

标签: php arrays foreach

我有一个包含以下数据的数组

Array
(
    [ref_no] => 
    [supply_from] => 
    [issue_to] => 
    [issue_date] => 
    [product_id] => Array
        (
            [0] => abc-20
            [1] => xyz-20
        )

    [purpose_id] => Array
        (
            [0] => 100
            [1] => 100
        )
)

我希望使用foreach循环这样的数组来保存数据库表中的记录

Array(
    'product_id'=>abc-20,
    'purpose_id'=>100
)

我试过这个

foreach($_POST as $key=>$val)
        {

            $result = array(
            'product_id' => $product_id[$key],
            'purpose_id' => $purpose_id[$key]
            );
            print_r($result);
        }

3 个答案:

答案 0 :(得分:1)

Iterare by product_id数组和create数组,其中包含product_id和purpose_id。请尝试以下代码:

<?php
$product_ids = $array['product_id'];
$purpose_ids = $array['purpose_id'];
$new_array = array();
foreach ($product_ids as $key => $value) {
  $tmp_array = array();
  $tmp_array['product_id']=$value;
  $tmp_array['purpose_id']=isset($purpose_ids[$key]) ? $purpose_ids[$key] : "";
  $new_array[] = $tmp_array;

}
print_r($new_array);

答案 1 :(得分:1)

你可以这样做: -

$final_array = array();
foreach ($array['product_id'] as $key => $value) {
  $final_array[$key]['product_id']=$value;
  $final_array[$key]['purpose_id']=isset($array['purpose_id'][$key]) ? $array['purpose_id'][$key] : "";
}
print_r($final_array);

输出: - https://eval.in/892361https://eval.in/892407($ _POST变量)

答案 2 :(得分:0)

您想要访问列式数据,因此您只需要迭代product_id行并使用索引来访问列。

使用以下代码段可以更简单地完成您的任务。

代码:(Demo

$_POST=[
    'ref_no'=>'',
    'supply_from'=>'',
    'issue_to'=>'',
    'issue_date'=>'',
    'product_id'=>['abc-20','xyz-20'],
    'purpose_id'=>[100,100]
];

foreach($_POST['product_id'] as $i=>$value){
    $result[]=[$_POST['product_id'][$i],$_POST['purpose_id'][$i]];
}

var_export($result);

输出:

array (
  0 => 
  array (
    0 => 'abc-20',
    1 => 100,
  ),
  1 => 
  array (
    0 => 'xyz-20',
    1 => 100,
  ),
)