PHP中的数组拆分和合并[duplicate]

nkoocmlb  于 2023-01-16  发布在  PHP
关注(0)|答案(1)|浏览(120)
    • 此问题在此处已有答案**:

Transposing multidimensional arrays in PHP(12个答案)
2天前关闭。
我需要构建一个逻辑,其中来自窗体的数组

Array
(
    [salary] => Array
        (
            [0] => 20010
            [1] => 20100
        )

    [c_id] => Array
        (
            [0] => 3
            [1] => 4
        )

    [date] => Array
        (
            [0] => 12-2022
            [1] => 12-2022
        )

)

可以被转换成这样

[0] => Array
(
    [salary] => 20010
    [c_id] => 3
    [date] => 12-2022
)
[1] => Array
(
    [salary] => 20100
    [c_id] => 4
    [date] => 12-2022
)

有没有其他的方法来保存这样的数据,请建议。或者我可以在我的代码做什么改变
这是我创建的表单。这些输入在一个循环中。

<input type="text" class="form-control" name="salary[]" value="<?=$salary_adjustment?>" required
<input type="text" name="c_id[]" value="<?=$data['c_id']?>" hidden>
<input type="text" name="date[]" value="<?=$date?>" hidden>

这是我试过的密码。

$datas   =   $this->input->post();

        $salary = $datas['salary'];
        $c_id = $datas['c_id'];
        $date = $datas['date'];

        print_r($salary);
        echo '<br>';
        print_r($c_id);
        echo '<br>';
        print_r($date);
        echo "<br>";

        $new    =   array_merge_recursive($salary,$c_id,$date);

        echo "<pre>";
        print_r($new);
        echo "</pre>";
ldioqlga

ldioqlga1#

这就是:

<?php

$array = array(
    'salary' => array(20010, 20100),
    'c_id' => array(3, 4),
    'date' => array('12-2022', '12-2022')
);

$result = array();
for ($i = 0; $i < count($array['salary']); $i++) {
    $result[] = array(
        'salary' => $array['salary'][$i],
        'c_id' => $array['c_id'][$i],
        'date' => $array['date'][$i]
    );
}

echo '<pre>';
var_dump($result);

输出:

array(2) {
  [0]=>
  array(3) {
    ["salary"]=>
    int(20010)
    ["c_id"]=>
    int(3)
    ["date"]=>
    string(7) "12-2022"
  }
  [1]=>
  array(3) {
    ["salary"]=>
    int(20100)
    ["c_id"]=>
    int(4)
    ["date"]=>
    string(7) "12-2022"
  }
}

相关问题