Rumah > Soal Jawab > teks badan
Andaikan saya mempunyai ini:
$arr = []; $arr[0] = 'second'; $arr[-1] = 'first';
Bagaimana untuk menukarnya kepada $arr[0 => 'first', 1 => 'second']
Ini adalah yang terbaik yang saya hasilkan:
$new = []; foreach ($arr as $key => $value) { $new[$key + 1] = $value; } ksort($new);
Tetapi seperti tatasusunan dalam php, saya tertanya-tanya sama ada sebenarnya terdapat fungsi terbina dalam mudah yang boleh saya gunakan?
P粉4410764052023-09-13 10:23:40
Saya tidak boleh tidak tertanya-tanya sama ada matlamat anda hanyalah untuk memasukkan nilai pada permulaan tatasusunan, mungkin itu yang anda cari array_unshift()
?
Jadi bukannya
$arr[-1] = 'first';
...lepas tu susun, boleh buat ni
array_unshift($arr, 'first');
Ini akan berada di indeks 0
处插入 'first'
dan gerakkan setiap item sedia ada yang diindeks secara berangka dalam tatasusunan naik satu.
P粉1079910302023-09-13 10:07:27
Gunakan ksort untuk mengisih tatasusunan, kemudian gunakan array_values padanya. Ia akan mengindeks semula kunci bermula dari 0:
$arr = []; $arr[0] = 'second'; $arr[-1] = 'first'; ksort($arr); $result = array_values($arr);