• 技术文章 >后端开发 >PHP问题

    PHP数组学习之怎么重置多维数组的索引

    青灯夜游青灯夜游2021-09-09 18:41:45原创232
    在之前的文章《PHP数组学习之怎么去除空白或者重复的元素》中,我们介绍了数组去空去重,即删除数组中的空元素和重复元素的方法,随便简单聊了聊重置一维数组索引的方法。一维数组的索引可以重置,那么二维数组,乃至多维数组的索引要怎么重置?下面我们来介绍一下方法。

    →相关推荐:PHP数组学习系列大汇总(持续更新~)

    首先从上文我们知道,一维数组想要重置索引,非常简单,直接利用array_values($array)函数就行。

    array_values()函数的作用是返回数组中所有元素的值,使用起来非常简单,只有一个必选参数$array,就可以返回一个包含给定数组中所有值的数组,但不保留键名。被返回的数组将使用索引数组的形式,数组的索引从 0 开始且以 1 递增。

    我们可以利用array_values()函数将元素下标混乱的数组重新理顺,即索引从 0 开始且以 1 递增;该函数不仅可以用于索引数组,也可用于关联数组,能将关联数组转化为索引数组。

    而重置多维数组的索引,也需要利用到这个array_values()函数。下面我们直接给出实现方法:

    function reform_keys($array){
        if(!is_array($array)){
            return $array;
        }
        $keys = implode('', array_keys($array));
        if(is_numeric($keys)){
            $array = array_values($array);
        }
        $array = array_map('reform_keys', $array);
        return $array;
    };

    测试一下,有下面一个多维数组

    $post = [
        0 => [
            'title' => 'xxx联票',
            'price' => 368.00,
            'items' => [
                '33' => [
                    'scenic_id' => 33,
                    'products' => [
                        'goods_id' => 13
                    ]
                ],
                '1500' => [
                    'scenic_id' => 1500,
                    'products' => [
                        'goods_id' => 57
                    ]
                ],
            ],
            'tickets' => 9
        ],
        10 => [
            'title' => 'zzz联票',
            'price' => 500.00,
            'items' => [
                '157' => [
                    'scenic_id' => 157,
                    'products' => [
                        'goods_id' => 77
                    ],
                    'attr' => [
                        '50' => [
                            'item' => '午场'
                        ],
                        '55' => [
                            'item' => '可退'
                        ]
                    ]
                ],
                '19' => [
                    'scenic_id' => 19,
                    'products' => [
                        'goods_id' => 87
                    ]
                ]
            ],
            'tickets' => 3
        ],
    ];

    调用reform_keys()函数重置$post数组的索引,并输出重置后的数组:

    $list = reform_keys($post);
    var_dump($list);

    输出结果为:

    1.png

    可以看出,多维数组$post里面所有层级的索引都被重置,从0开始计数了!

    下面给大家介绍一下里面用的函数:

    好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

    最后给大家推荐一个PHP数组的免费视频教程:PHP函数之array数组函数视频讲解,快来学习吧!

    以上就是PHP数组学习之怎么重置多维数组的索引的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:两个实例讲解PHP删除字符串中的逗号以及尾部斜杠的方法 下一篇:通过PHP返回给定个数的随机字符
    线上培训班

    相关文章推荐

    • PHP数组学习之二维数组怎么进行排序(2种方法)• PHP数组学习之怎么将键名key和值的位置进行互换• PHP数组学习之将一维数组变成包含指定多元素的二维数组• PHP数组学习之怎么去除空白或者重复的元素

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网