PHP三维数组,如果第二个元素不同则重置键

时间:2012-09-01 15:10:10

标签: php arrays

假设我有print_r输出,这是动态的,并且每个条件都不一样

Array
(
    [2] => Array
        (
            [1] => 24
            [2] => 23,25
        )

    [3] => Array
        (
            [3] => 27
            [4] => 27,26
            [5] => 28,27,26
        )

)

如您所见,数组元素[3][3][4][5]开始,如果第二个元素不相同,它如何从[1][2]...[n]开始。

理想情况下,我所寻找的是像

Array
(
    [2] => Array
        (
            [1] => 24
            [2] => 23,25
        )

    [3] => Array
        (
            [1] => 27
            [2] => 27,26
            [3] => 28,27,26
        )

)

我如何实现这一目标?感谢

1 个答案:

答案 0 :(得分:3)

array_values返回带有新数字索引的数组值:

foreach($a as $k => $v) {
  $a[$k] = array_values($v);
}

如果您只想重新索引某些子阵列,请添加条件。


功能方法:

$a = array_map(function($v) {
  return array_values($v);
}, $a);