Bagaimanakah saya boleh mengindeks semula tatasusunan dengan nilai kunci integer negatif supaya item 0,1,2,3,-1 diisih kepada -1,0,1,2,3 dan kemudian dinomborkan semula kepada 0,1,2,3 ,4?
P粉198670603
P粉198670603 2023-09-12 12:09:51
0
2
510

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粉198670603
P粉198670603

membalas semua (2)
P粉441076405

Saya tidak boleh tidak tertanya-tanya sama ada matlamat anda hanyalah untuk memasukkan nilai pada permulaan tatasusunan, mungkin itu yang anda cariarray_unshift()?

Jadi bukannya

$arr[-1] = 'first';

...lepas tu susun, boleh buat ni

array_unshift($arr, 'first');

Ini akan berada di indeks0处插入'first'dan gerakkan setiap item sedia ada yang diindeks secara berangka dalam tatasusunan naik satu.

    P粉107991030

    Gunakan ksort untuk mengisih tatasusunan, kemudian gunakanarray_valuespadanya. Ia akan mengindeks semula kunci bermula dari 0:

    $arr = []; $arr[0] = 'second'; $arr[-1] = 'first'; ksort($arr); $result = array_values($arr);
      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!