搜尋

首頁  >  問答  >  主體

如何使用負整數鍵值重新索引數組,以便項目 0,1,2,3,-1 排序到 -1,0,1,2,3,然後重新編號為 0,1,2,3,4?

假設我有這個:

$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粉198670603P粉198670603457 天前643

全部回覆(2)我來回復

  • P粉441076405

    P粉4410764052023-09-13 10:23:40

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

    所以而不是

    $arr[-1] = 'first';
    

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

    array_unshift($arr, 'first');
    

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

    回覆
    0
  • P粉107991030

    P粉1079910302023-09-13 10:07:27

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

    $arr = [];
    $arr[0] = 'second';
    $arr[-1] = 'first';
    
    ksort($arr);
    $result = array_values($arr);

    回覆
    0
  • 取消回覆