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

时间:2019-04-13 20:35:35

标签: php codeigniter codeigniter-3

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

```
rules <- apriori (Groceries, 
              parameter = list(supp = 0.001, conf = 0.5)
              ) 
```

我要关注结果

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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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));

希望这会有所帮助,