中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何重置多維數組的索引

發布時間:2021-08-27 13:32:48 來源:億速云 閱讀:412 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關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);

輸出結果為:

PHP如何重置多維數組的索引

可以看出,多維數組$post里面所有層級的索引都被重置,從0開始計數了!

下面給大家介紹一下里面用的函數:

  • array_keys($array):獲取$array數組中所有鍵名;

  • $keys=implode('', array_keys($array)):將鍵名數組中的元素拼接在一起,返回一個字符串$keys

  • is_numeric($keys):檢測變量$keys是否為數字或數字字符串。

  • array_values($array):獲取全部數值,即重置索引;

  • array_map('reform_keys', $array):為$array數組的每個元素應用回調函數reform_keys()。

    array_map() 返回一個 array,數組內容為 array1 的元素按索引順序為參數調用 callback 后的結果(有更多數組時,還會傳入 arrays 的元素)。 callback 函數形參的數量必須匹配 array_map() 實參中數組的數量。

感謝各位的閱讀!關于“PHP如何重置多維數組的索引”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥芬河市| 庆安县| 雷波县| 罗源县| 衡山县| 昭平县| 台州市| 辰溪县| 延长县| 乌鲁木齐市| 开远市| 神农架林区| 苏州市| 宁海县| 横山县| 丰原市| 花莲县| 仁化县| 永昌县| 通江县| 青冈县| 巴彦淖尔市| 清苑县| 肇庆市| 永年县| 湟源县| 舟山市| 英吉沙县| 洪洞县| 庄河市| 渝北区| 习水县| 象山县| 皮山县| 三明市| 尖扎县| 文成县| 峨眉山市| 苏州市| 黎平县| 军事|