如何使用負整數鍵值重新索引數組,以便項目 0,1,2,3,-1 排序到 -1,0,1,2,3,然後重新編號為 0,1,2,3,4?
P粉198670603
P粉198670603 2023-09-12 12:09:51
0
2
625

假設我有這個:

$arr = [];
$arr[0] = 'second';
$arr[-1] = 'first';

如何將其更改為 $arr[0 => 'first', 1 => 'second']

這是我想到的最好的:

$new = [];
foreach ($arr as $key => $value) {
    $new[$key + 1] = $value;
}

ksort($new);

但與 php 中的陣列一樣,我想知道是否真的有一個我可以使用的簡單內建函數?

P粉198670603
P粉198670603

全部回覆(2)
P粉441076405

我忍不住想知道您的目標是否只是在數組的開頭插入一個值,也許您正在尋找array_unshift()

所以而不是

$arr[-1] = 'first';

...然後排序,你可以這樣做

array_unshift($arr, 'first');

這會在索引 0 處插入 'first' 並將數組中每個現有的、按數字索引的項目向上移動一個。

P粉107991030

使用 ksort 對陣列進行排序,然後套用 array_values到它。它將重新索引從 0 開始的鍵:

$arr = [];
$arr[0] = 'second';
$arr[-1] = 'first';

ksort($arr);
$result = array_values($arr);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板