假設我有這個:
$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粉4410764052023-09-13 10:23:40
我忍不住想知道您的目標是否只是在數組的開頭插入一個值,也許您正在尋找array_unshift()
?
所以而不是
$arr[-1] = 'first';
...然後排序,你可以這樣做
array_unshift($arr, 'first');
這會在索引 0
處插入 'first'
並將數組中每個現有的、按數字索引的項目向上移動一個。
P粉1079910302023-09-13 10:07:27
使用 ksort 對陣列進行排序,然後套用 array_values到它。它將重新索引從 0 開始的鍵:
$arr = []; $arr[0] = 'second'; $arr[-1] = 'first'; ksort($arr); $result = array_values($arr);