Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan flip susunan tatasusunan menggunakan PHP

Bagaimana untuk melaksanakan flip susunan tatasusunan menggunakan PHP

PHPz
PHPzasal
2023-04-25 09:06:591001semak imbas

Dengan pembangunan aplikasi Web yang berterusan, PHP telah menjadi salah satu bahasa pengaturcaraan Web yang paling biasa. Dalam PHP, tatasusunan ialah struktur data yang sangat berkuasa dan fleksibel yang digunakan secara meluas dalam pelbagai situasi. Walau bagaimanapun, dalam beberapa kes, kita perlu menukar susunan tatasusunan untuk mencapai beberapa fungsi tertentu. Artikel ini akan memperkenalkan cara menggunakan PHP untuk mencapai pembalik susunan tatasusunan.

1 Gunakan fungsi array_reverse()

PHP menyediakan fungsi array_reverse(), yang boleh membalikkan secara langsung susunan tatasusunan. Fungsi ini menerima tatasusunan sebagai parameter dan mengembalikan tatasusunan baharu Susunan elemen tatasusunan baharu adalah bertentangan sepenuhnya dengan tatasusunan asal.

Kod contoh:

$arr = array(1, 2, 3, 4, 5);
$revArr = array_reverse($arr);
print_r($revArr);

Hasil keluaran:

Array
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

2. Gunakan untuk gelung untuk mencapai pembalikan jujukan

Selain menggunakan array_reverse. () fungsi Selain itu, kita juga boleh menggunakan gelung for untuk membalikkan susunan tatasusunan. Kaedah pelaksanaan khusus adalah dengan terlebih dahulu mengira panjang tatasusunan, dan kemudian menggunakan gelung for untuk melintasi separuh pertama elemen tatasusunan dan menukarnya dengan separuh kedua unsur yang sepadan.

Kod sampel:

$arr = array(1, 2, 3, 4, 5);
$len = count($arr);
for ($i = 0; $i < $len / 2; $i++) {
    $tmp = $arr[$i];
    $arr[$i] = $arr[$len - $i - 1];
    $arr[$len - $i - 1] = $tmp;
}
print_r($arr);

Hasil keluaran:

Array
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

3 Gunakan gelung sambil untuk melaksanakan pembalikan jujukan

Selain menggunakan untuk gelung, Kita juga boleh menggunakan gelung sementara untuk membalikkan susunan tatasusunan. Kaedah pelaksanaan khusus ialah menggunakan dua penunjuk $i dan $j untuk menunjuk ke kedudukan permulaan dan kedudukan akhir tatasusunan, dan melakukan operasi pertukaran dalam gelung sehingga $i >= $j.

Kod sampel:

$arr = array(1, 2, 3, 4, 5);
$i = 0;
$j = count($arr) - 1;
while ($i < $j) {
    $tmp = $arr[$i];
    $arr[$i] = $arr[$j];
    $arr[$j] = $tmp;
    $i++;
    $j--;
}
print_r($arr);

Hasil keluaran:

Array
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

4 Gunakan fungsi rekursif untuk mencapai jujukan membalikkan

Tiga kaedah di atas ialah. semua Gunakan struktur gelung untuk membalikkan susunan tatasusunan. Kaedah lain ialah menggunakan fungsi rekursif Idea rekursif adalah serupa dengan gelung while, kecuali ia digantikan dengan panggilan rekursif.

Kod sampel:

function reverseArray(&$arr, $i, $j) {
    if ($i >= $j) {
        return;
    }
    $tmp = $arr[$i];
    $arr[$i] = $arr[$j];
    $arr[$j] = $tmp;
    reverseArray($arr, $i + 1, $j - 1);
}

$arr = array(1, 2, 3, 4, 5);
reverseArray($arr, 0, count($arr) - 1);
print_r($arr);

Hasil keluaran:

Array
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

5 Nota

Apabila menggunakan kaedah ini, anda perlu memberi perhatian kepada beberapa butiran :

1. Apabila menggunakan gelung for atau while, untuk mengelakkan elemen tengah ditukar dua kali apabila panjang tatasusunan ialah nombor ganjil, anda perlu menetapkan syarat penamatan gelung kepada $i< $j bukannya $i<=$ j.

2. Menggunakan hantaran rujukan boleh mengurangkan overhed memori dan operasi tugasan, dan meningkatkan kecekapan kod.

3. Apabila menggunakan fungsi rekursif, $i dan $j mesti dihantar melalui rujukan, jika tidak tatasusunan tidak akan diubah.

Keempat-empat kaedah boleh mencapai pembalik susunan tatasusunan Kaedah yang hendak dipilih bergantung terutamanya pada keperluan sebenar dan keutamaan peribadi.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan flip susunan tatasusunan menggunakan 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