Artikel ini akan memperkenalkan kaedah pembalikan tatasusunan php.
Dalam PHP, tatasusunan ialah salah satu jenis data yang paling biasa, yang boleh menyimpan berbilang nilai. Melaksanakan operasi membalikkan tatasusunan adalah salah satu keperluan biasa. Berikut menunjukkan beberapa kaedah berbeza untuk melaksanakan operasi pembalikan tatasusunan php.
Kaedah 1: fungsi array_reverse()
PHP menyediakan array_reverse() fungsi terbina dalam untuk membalikkan tatasusunan Fungsi ini mengembalikan tatasusunan baharu di mana unsur tatasusunan asal berada susunan terbalik. Contohnya:
$arr = array(1, 2, 3, 4, 5); $reversedArr = array_reverse($arr); print_r($reversedArr);
Hasil keluaran menjalankan kod di atas ialah:
Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 )
Fungsi ini juga boleh memilih untuk mengekalkan atau menetapkan semula nama kunci tatasusunan. Parameter kedua adalah pilihan dan nilai lalainya adalah palsu, yang bermaksud nama kunci tidak dikekalkan. Jika nilainya benar, nama kunci dikekalkan.
$arr = array("one" => 1, "two" => 2, "three" => 3, "four" => 4, "five" => 5); $reversedArr = array_reverse($arr, true); print_r($reversedArr);
Hasil output ialah:
Array ( [five] => 5 [four] => 4 [three] => 3 [two] => 2 [one] => 1 )
Kaedah 2: untuk gelung
Kendalian pembalikan tatasusunan juga boleh dilaksanakan menggunakan gelung for. Kita boleh menggunakan dua penunjuk, satu di permulaan dan satu di penghujung tatasusunan, gerakkan dua penunjuk dalam gelung dan menukar elemen dengan sewajarnya. Pelaksanaan khusus adalah seperti berikut:
$arr = array(1, 2, 3, 4, 5); $len = count($arr); for ($i = 0; $i < $len / 2; $i++) { $temp = $arr[$i]; $arr[$i] = $arr[$len - $i - 1]; $arr[$len - $i - 1] = $temp; } print_r($arr);
Hasil output ialah:
Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 )
Kaedah 3: Gunakan fungsi array_reduce() dan nama kunci tatasusunan terbalik
Kita juga boleh menggunakan array_reduce () fungsi Balikkan tatasusunan. Fungsi array_reduce() menerima tatasusunan boleh lelar dan boleh menggunakan fungsi panggil balik untuk melaksanakan operasi seperti penjumlahan, penapisan dan transformasi pada setiap elemen. Berikut ialah contoh pembalikan tatasusunan:
$arr = array(1, 2, 3, 4, 5); $reversedArr = array_reduce(array_keys($arr), function ($acc, $key) use ($arr) { $acc[$key] = $arr[count($arr) - 1 - $key]; return $acc; }, []); print_r($reversedArr);
Hasil keluarannya ialah:
Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 )
Kod di atas menggunakan fungsi array_keys() untuk mendapatkan nama kunci tatasusunan dan mengambilnya sebagai parameter pertama Dihantar kepada fungsi array_reduce() untuk digunakan dalam pelaksanaan fungsi panggil balik. Fungsi panggil balik seterusnya menggunakan nama kunci untuk mengira indeks terbalik tatasusunan, dengan itu membalikkan tatasusunan. Parameter $acc ialah penumpuk yang nilainya sentiasa tatasusunan, dengan nilai awal ialah tatasusunan kosong [].
Seperti yang anda lihat, menggunakan fungsi array_reduce() untuk mencapai pembalikan tatasusunan agak rumit. Tetapi fungsi ini sangat berguna apabila berurusan dengan operasi tatasusunan lain.
Kaedah 4: Gunakan fungsi array_multisort() dan array_column()
Cara terakhir untuk melaksanakan operasi pembalikan tatasusunan ialah menggunakan ciri PHP untuk mengendalikan tatasusunan berbilang dimensi. Mula-mula kita boleh menggunakan fungsi array_multisort() untuk mengisih indeks ganjil dan genap bebas dalam susunan terbalik mengikut indeks tatasusunan. Kemudian, gunakan fungsi array_column() untuk menukar tatasusunan kembali menjadi tatasusunan tunggal. Pelaksanaan khusus adalah seperti berikut:
$arr = array(1, 2, 3, 4, 5); $n = count($arr); for ($i = 0; $i < $n; $i++) { if ($i % 2 == 0) { $even[] = $arr[$i]; } else { $odd[] = $arr[$i]; } } array_multisort(array_reverse($odd), SORT_NUMERIC, array_reverse($even), SORT_NUMERIC); $reversedArr = array_column(array($even, $odd), 0); print_r($reversedArr);
Hasil output ialah:
Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 )
Kod di atas menyimpan indeks ganjil dan indeks genap dalam dua tatasusunan masing-masing $ganjil dan $genap. Seterusnya, gunakan fungsi array_multisort() untuk mengisih dua tatasusunan dalam susunan terbalik, dan akhirnya gunakan fungsi array_column() untuk menukar tatasusunan dua dimensi kepada tatasusunan tunggal.
Ringkasan
Artikel ini membincangkan empat cara berbeza untuk melaksanakan operasi pembalikan tatasusunan dalam PHP. Antaranya, fungsi array_reverse() ialah kaedah yang paling mudah dan langsung. Kaedah gelung for agak mudah untuk dikendalikan, tetapi tidak secekap fungsi array_reverse(). Melaksanakan pembalikan tatasusunan menggunakan fungsi array_reduce() adalah agak rumit, tetapi fungsi ini sangat berguna apabila bekerja dengan operasi tatasusunan lain. Akhir sekali, kami menunjukkan pendekatan berdasarkan fungsi array_multisort() dan array_column() untuk melaksanakan operasi pembalikan tatasusunan dengan memanfaatkan keupayaan PHP untuk mengendalikan tatasusunan multidimensi.
Atas ialah kandungan terperinci kaedah pembalikan tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!