Rumah >pembangunan bahagian belakang >masalah PHP >Analisis ringkas tentang cara menetapkan semula indeks tatasusunan php

Analisis ringkas tentang cara menetapkan semula indeks tatasusunan php

PHPz
PHPzasal
2023-03-23 11:11:572937semak imbas

Dalam pengaturcaraan PHP, tatasusunan ialah jenis data yang sangat biasa digunakan. Apabila memproses tatasusunan, kadangkala perlu menetapkan semula indeks tatasusunan untuk memudahkan penggunaan tatasusunan dalam operasi seterusnya.

Artikel ini akan memfokuskan pada topik ini dan memperkenalkan beberapa masalah biasa dalam penjimatan indeks set semula tatasusunan dan output dalam PHP. Secara khususnya, artikel ini terbahagi terutamanya kepada bahagian berikut:

  • Apakah indeks tetapan semula tatasusunan?

  • Bagaimana untuk menetapkan semula tatasusunan Indeks

  • Masalah menyimpan tatasusunan selepas menetapkan semula indeks

  • Masalah mengeluarkan tatasusunan selepas menetapkan semula indeks

1. Apakah pengindeksan semula tatasusunan

Tatasusunan ialah himpunan beberapa elemen, setiap elemen mempunyai nilai indeks yang unik. Nilai indeks ini biasanya nombor yang mengenal pasti kedudukan elemen dalam tatasusunan. Dalam PHP, pengindeksan tatasusunan bermula dari 0, yang bermaksud bahawa elemen pertama mempunyai nilai indeks 0, elemen kedua mempunyai indeks 1, dan seterusnya.

Dalam sesetengah kes, kita mungkin perlu menetapkan semula indeks tatasusunan, iaitu, untuk menetapkan semula nilai indeks yang diberikan kepada elemen dalam tatasusunan. Secara umumnya, ini adalah untuk memudahkan operasi dan pemprosesan tatasusunan seterusnya.

2. Cara mengindeks semula tatasusunan

Dalam PHP, terdapat banyak cara untuk mengindeks semula tatasusunan. Berikut ialah dua kaedah yang lebih biasa digunakan:

Kaedah 1: Gunakan fungsi array_values()

array_values() fungsi menyimpan semua nilai array ke dalam array baru dan mengembalikan yang baru ini tatasusunan . Indeks tatasusunan baharu ini bermula pada 0 dan meningkat secara berurutan. Iaitu, elemen pertama dalam tatasusunan baru mempunyai nilai indeks 0, elemen kedua mempunyai indeks 1, dan seterusnya. Berikut ialah kod sampel:

$my_arr = array(10 => "a", 20 => "b", 30 => "c");
$my_new_arr = array_values($my_arr);

Dalam contoh ini, kami mencipta tatasusunan bersekutu $my_arr dengan tiga elemen pada indeks 10, 20 dan 30. Kami kemudian menggunakan fungsi array_values() untuk mengindeks semula dan menyimpannya ke dalam array baru $my_new_arr.

Kaedah 2: Gunakan gelung foreach()

Kita boleh menggunakan gelung foreach() untuk melintasi tatasusunan asal dan menyalin elemennya ke tatasusunan baharu. Semasa proses ini, kita boleh menggunakan pembolehubah gelung untuk menetapkan nilai indeks baharu secara berperingkat untuk setiap elemen. Berikut ialah kod contoh khusus:

$my_arr = array(10 => "a", 20 => "b", 30 => "c");
$my_new_arr = array();
$i = 0;

foreach ($my_arr as $value) {
    $my_new_arr[$i] = $value;
    $i++;
}

Dalam contoh ini, kita mula-mula mencipta tatasusunan kosong $my_new_arr, dan kemudian menggunakan foreach() untuk menggelungkan setiap elemen dalam tatasusunan asal $my_arr, dan Ia disalin ke dalam tatasusunan baharu. Selain itu, kami menggunakan $i sebagai pembolehubah gelung, menambahnya untuk menetapkan nilai indeks baharu untuk setiap elemen. Indeks tatasusunan baharu yang terhasil bermula dari 0 dan meningkat secara berurutan.

3. Menyimpan tatasusunan selepas mengindeks semula

Selepas mengindeks semula tatasusunan, kita perlu memberi perhatian kepada masalah penjimatan. Khususnya, apabila PHP menetapkan semula tatasusunan indeks, ia akan kehilangan nama kunci tatasusunan asal dan hanya mengekalkan nilai kunci. Oleh itu, apa yang kita dapat selepas menetapkan semula indeks ialah tatasusunan baharu di mana indeks elemen bermula dari 0 dan ditambah, manakala nama kunci asal dibuang.

Untuk mengelakkan situasi ini, kita boleh memilih untuk menetapkan tatasusunan diindeks semula kepada tatasusunan asal, menggantikan tatasusunan asal. Berikut ialah kod sampel:

$my_arr = array(10 => "a", 20 => "b", 30 => "c");
$my_arr = array_values($my_arr);

Dalam contoh ini, kami mengindeks semula tatasusunan $my_arr dan menyimpan hasilnya dalam tatasusunan asal. Kelebihan ini ialah kami mengekalkan nama kunci dalam tatasusunan asal dan juga mendapatkan indeks tatasusunan baharu.

4. Isu output tatasusunan selepas mengindeks semula

Selepas mengindeks semula tatasusunan, kami mungkin perlu mengeluarkannya ke halaman atau tempat lain. Dalam PHP, terdapat beberapa cara untuk mengeluarkan tatasusunan, termasuk var_dump(), print_r(), json_encode(), dsb.

Walau bagaimanapun, perlu diingat bahawa apabila mengeluarkan tatasusunan selepas pengindeksan semula, kita mungkin perlu menggunakan gelung traversal untuk mengeluarkan elemen tatasusunan satu demi satu. Berikut ialah kod contoh khusus:

$my_arr = array(10 => "a", 20 => "b", 30 => "c");
$my_new_arr = array_values($my_arr);

foreach ($my_new_arr as $key => $value) {
    echo "Key: " . $key . ", Value: " . $value . "
"; }

Dalam contoh ini, kami mula-mula mengindeks semula tatasusunan dan menyimpan hasilnya dalam tatasusunan baharu $my_new_arr. Kami kemudian menggunakan gelung foreach() untuk menggelung melalui setiap elemen dalam tatasusunan $my_new_arr dan mengeluarkan kunci dan nilai setiap elemen melalui pernyataan gema.

5. Kesimpulan

Menetapkan semula indeks tatasusunan ialah masalah biasa dalam pengaturcaraan PHP. Melalui pengenalan artikel ini, kami telah mempelajari cara menetapkan semula indeks tatasusunan, masalah menyimpan tatasusunan selepas menetapkan semula indeks, dan masalah mengeluarkan tatasusunan selepas menetapkan semula indeks. Dalam pengaturcaraan harian, kita boleh memilih kaedah yang berbeza untuk mengendalikan operasi indeks set semula tatasusunan mengikut situasi sebenar untuk meningkatkan kecekapan pengaturcaraan dan kejelasan kod.

Atas ialah kandungan terperinci Analisis ringkas tentang cara menetapkan semula indeks tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn