php 重置数组索引,兼容多维数组

对于一位数组,重置索引,可使用array_values();(具体用法,参考手册)

$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));

以上例程会输出:

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

 

$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
    ],
];
//print_r($post);
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;
};
$list = reform_keys($post);
print_r($list);

以上结果会输出:

Array
(
    [0] => Array
        (
            [title] => xxx联票
            [price] => 368
            [items] => Array
                (
                    [0] => Array
                        (
                            [scenic_id] => 33
                            [products] => Array
                                (
                                    [goods_id] => 13
                                )

                        )

                    [1] => Array
                        (
                            [scenic_id] => 1500
                            [products] => Array
                                (
                                    [goods_id] => 57
                                )

                        )

                )

            [tickets] => 9
        )

    [1] => Array
        (
            [title] => zzz联票
            [price] => 500
            [items] => Array
                (
                    [0] => Array
                        (
                            [scenic_id] => 157
                            [products] => Array
                                (
                                    [goods_id] => 77
                                )

                            [attr] => Array
                                (
                                    [0] => Array
                                        (
                                            [item] => 午场
                                        )

                                    [1] => Array
                                        (
                                            [item] => 可退
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [scenic_id] => 19
                            [products] => Array
                                (
                                    [goods_id] => 87
                                )

                        )

                )

            [tickets] => 3
        )

)

里面所有层级的索引已经被重置。0,1,2.。。。。。

转载于:https://my.oschina.net/osgrace/blog/1491661

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值