如何循环多维数组来获取值

问题描述 投票:1回答:2

我有这个多维数组,我正在尝试将其转换为下面给出的数组

Array
(
    [id] => Array
        (
            [0] => 1
            [1] => 3
        )
    [team_id] => Array
        (
            [0] => 654868479
            [1] => 463733228
        )
    [seed] => Array
        (
            [0] => 1
            [1] => 2
        )
)

我想要以下结果

Array
(
    [0] => Array
        (
            [id] => 1
            [team_id] => 654868479
            [seed] => 1
        )
    [1] => Array
        (
            [id] => 3
            [team_id] => 463733228
            [seed] => 3
        )
)

这是我迄今取得的成就。我实际上希望$seeded[]数组与提交update_batch所需的格式相同。哪个将最终更新数据库记录。

$seeds = $this->input->post();
$i=0;
foreach ($seeds as $key => $value){
    if(!empty($key) && !empty($value)){
        for($i=0; $i=5; $i++) {
            $seeded[] = array(
                'id' => (id go here),
                'tournament_id' => $tournament_id,
                'stage_id' => $stage_id,
                'seed_id' => (seed go here),
                'team_name' => (team_id go here),
            );
        }
        $this->db->update_batch('tournament_seed', $seeded, 'id');
    }
}
php codeigniter codeigniter-3
2个回答
2
投票

迭代数组并使用下面的代码转换它。

$seeded= array();
for($i =0; $i < count($seeds['id']); $i++){
    $tempArr['id'] = $seeds['id'][$i];
    $tempArr['team_id'] = $seeds['team_id'][$i];
    $tempArr['seed'] = $seeds['seed'][$i];
    $seeded[] = $tempArr;
}

0
投票

我编写了一个函数,允许您将任何类似结构的数组转换为您所拥有的数组,并将其转换为您正在寻找的表单数组。

您可以通过以下方式构建阵列:

$arr = [
    'id'      => [1, 3],
    'team_id' => [654868479, 463733228],
    'seed'    => [1, 2],
];

function array_flatten($arr) {
    $res = [];
    foreach($arr as $id => $valuesArray) {
        foreach($valuesArray as $index => $value)
            $res[$index][$id] = $value;
    }
    return $res;
}

print_r(array_flatten($arr));

希望这可以帮助,

© www.soinside.com 2019 - 2024. All rights reserved.