Reindex多维数组从1索引到基于0索引

时间:2015-04-16 14:59:49

标签: php arrays

Array
(
    [1] => Array
        (
            [1] => 1
            [2] => 2
        )

    [2] => Array
        (
            [1] => 1
            [2] => 2
        )

    [3] => Array
        (
            [1] => 1
        )

)

我想更改内部数组键,从0开始,而不是[1] = 1

2 个答案:

答案 0 :(得分:1)

foreach($outerArray as $key => $innerArray)
{
    $outerArray[$key] = array_values($innerArray);
}

答案 1 :(得分:0)

这里有一些关于funzies的递归:

function resetKeys(array &$array) {
     $array = array_values($array);
     foreach($array as &$value) {
         if(is_array($value)) { 
             resetKeys($value);
         }
     }
}

这里有效:

$array = [
    '1' => [
        '1' => '1'
     ]
];
resetKeys($array);
print_r($array);

结果:

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

请参阅array_values

的手册条目

要在不更改外部值的情况下使用它:

foreach($array as &$value) {
    resetKeys($value);
}
print_r($array);

结果:

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