站長資訊網
最全最豐富的資訊網站

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);

輸出結果為:

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 后的結果(有

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产精品久久久久久无毒不卡| 日韩加勒比一本无码精品| 国产成人精品999在线| 99久久久国产精品免费无卡顿| 99久久99久久久精品久久| 日韩精品久久久久久免费| 91亚洲国产成人精品下载| 国产精品日韩AV在线播放| 精品无码三级在线观看视频| 七月婷婷精品视频在线观看| 久久综合鬼色88久久精品综合自在自线噜噜 | 国产亚洲精品国看不卡| 国产成人精品久久综合| 欧美黑人巨大精品videos| 国产精品一久久香蕉产线看| 亚洲国产精品久久久久秋霞影院| 久久精品人人槡人妻人人玩AV| 无码精品一区二区三区免费视频| 日韩在线a视频免费播放| 国产AV一区二区精品凹凸| 国产精品一区电影| 国产精品十八禁在线观看| 国产高清在线精品二区| 日本精品3d动漫一区二区| 日韩精品视频观看| 精品国产一区二区三区av片| 午夜精品福利影院| 自拍偷自拍亚洲精品播放| 少妇人妻精品一区二区| 香蕉久久精品国产| 无码A级毛片日韩精品| 国产视频精品免费| 国产真实乱人偷精品| 国产伦精品一区二区三区免费下载| 国产精品久久久久久久久99热| 国产亚洲精品免费| 日韩大片高清播放器| 日韩免费视频网站| 国产VA免费精品高清在线| 精品人妻少妇一区二区三区在线| 久久久久国产精品麻豆AR影院 |