php array ke koleksi

May 19, 2023 pm 03:26 PM

Dalam PHP, tatasusunan dan set ialah struktur data yang sangat biasa. Tatasusunan ialah koleksi tertib yang boleh mengandungi pelbagai jenis data, seperti nombor, rentetan dan objek. Satu set adalah lebih abstrak dan mewakili koleksi elemen, di mana setiap elemen adalah unik dan tidak mempunyai susunan atau indeks tertentu.

Dalam pembangunan sebenar, kita selalunya perlu menukar tatasusunan kepada satu set untuk memudahkan carian dan operasi yang lebih cekap. Dalam PHP, sangat mudah untuk melaksanakan penukaran ini, dan artikel ini akan memperkenalkan kaedah dan teknik pelaksanaan.

1. Gunakan fungsi array_unique

Dalam PHP, terdapat array_unique fungsi terbina dalam, yang boleh digunakan untuk mengalih keluar elemen pendua daripada tatasusunan. Sintaks asas fungsi ini adalah seperti berikut:

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
Salin selepas log masuk

Antaranya, $array mewakili tatasusunan yang perlu dinyahduplikasi, $sort_flags mewakili kaedah pengisihan pilihan, yang biasa ialah SORT_STRING (diisih mengikut rentetan), SORT_NUMERIC (isih mengikut nombor) Isih mengikut cara) dan SORT_REGULAR (isih mengikut susunan semula jadi), dsb.

Jika anda menghantar tatasusunan kepada fungsi array_unique, ia akan mengembalikan tatasusunan baharu yang mengandungi elemen unik. Contohnya:

$arr = array(1,2,2,3,3,3);
$set = array_unique($arr);
print_r($set); // 输出 Array ( [0] => 1 [1] => 2 [3] => 3 )
Salin selepas log masuk

Dapat dilihat bahawa menggunakan fungsi array_unique boleh menukar tatasusunan menjadi set dengan mudah.

2. Gunakan fungsi array_flip

Selain menggunakan fungsi array_unique, terdapat satu lagi cara mudah untuk menukar tatasusunan kepada koleksi, iaitu menggunakan fungsi array_flip. Fungsi ini digunakan untuk menukar kunci dan nilai dalam tatasusunan, iaitu, nilai dalam tatasusunan digunakan sebagai kunci tatasusunan baharu, dan kunci asal diabaikan. Sintaks asas fungsi adalah seperti berikut:

array array_flip ( array $array )
Salin selepas log masuk

Antaranya, $array mewakili tatasusunan yang kunci dan nilainya perlu ditukar. Jika anda menghantar tatasusunan kepada fungsi array_flip, ia mengembalikan tatasusunan baharu dengan nilai dalam tatasusunan asal sebagai kunci dan semua nilai dalam tatasusunan baharu. Contohnya:

$arr = array('a', 'b', 'c');
$set = array_flip($arr);
print_r($set); // 输出 Array ( [a] => 0 [b] => 1 [c] => 2 )
Salin selepas log masuk

Memandangkan elemen dalam koleksi mestilah unik, kita boleh mengabaikan nilai dalam tatasusunan baharu dan hanya menyimpan kuncinya, iaitu:

$arr = array('a', 'b', 'c');
$set = array_flip($arr);
$set = array_keys($set);
print_r($set); // 输出 Array ( [0] => a [1] => b [2] => c )
Salin selepas log masuk

Dengan cara ini, kita mendapat koleksi A yang mengandungi semua elemen dalam tatasusunan asal.

3. Gunakan fungsi array_reduce

Satu lagi kaedah biasa ialah menggunakan fungsi array_reduce. Fungsi ini digunakan untuk mengira secara berulang semua elemen dalam tatasusunan dan mengembalikan hasil akhir. Sintaks asas fungsi adalah seperti berikut:

mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
Salin selepas log masuk

Antaranya, $array mewakili tatasusunan yang perlu dikira secara berulang, $callback ialah fungsi panggil balik yang digunakan untuk mengira elemen dalam tatasusunan, $initial ialah nilai awal pilihan, Digunakan untuk menentukan keadaan awal semasa proses lelaran. Sintaks asas fungsi panggil balik adalah seperti berikut:

mixed function callback ( mixed $carry , mixed $item )
Salin selepas log masuk

Antaranya, $carry mewakili hasil lelaran sebelumnya dan $item mewakili elemen lelaran semasa. Fungsi panggil balik menjana hasil pengiraan baharu berdasarkan hasil pengiraan terakhir dan elemen semasa, dan mengembalikannya kepada fungsi array_reduce untuk lelaran seterusnya.

Untuk menukar tatasusunan kepada koleksi, kita perlu menggunakan teknik penyahduplikasian dalam fungsi panggil balik. Khususnya, kita boleh menggunakan teknik rujukan tatasusunan dalam PHP untuk menggunakan nilai sebagai kunci dalam koleksi dan menetapkan nilai itu sendiri kepada 1 untuk memastikan bahawa nilai yang sepadan dengan setiap kunci ialah 1, dengan itu memastikan elemen dalam koleksi adalah unik. . Kodnya adalah seperti berikut:

$arr = array(1,2,2,3,3,3);
$set = array_reduce($arr, function(&$res, $cur){
    $res[$cur] = 1;
    return $res;
}, array());
print_r(array_keys($set)); // 输出 Array ( [0] => 1 [1] => 2 [2] => 3 )
Salin selepas log masuk

Melalui pemprosesan fungsi panggil balik di atas, kami telah berjaya menukar tatasusunan asal kepada koleksi. Sudah tentu, kita juga boleh menggunakan operasi khusus set lain dalam fungsi panggil balik, seperti persimpangan, kesatuan, perbezaan, dsb.

Ringkasan

Menukar tatasusunan kepada koleksi adalah perkara biasa dalam pembangunan sebenar. PHP menyediakan beberapa cara untuk mencapai penukaran ini, termasuk menggunakan fungsi terbina dalam array_unique, array_flip dan array_reduce, masing-masing dengan kebaikan dan keburukan mereka sendiri. Dalam senario sebenar, pembangun boleh memilih kaedah yang berbeza mengikut situasi tertentu untuk memastikan kecekapan dan kebolehbacaan kod.

Atas ialah kandungan terperinci php array ke koleksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. Mar 26, 2025 pm 04:13 PM

Artikel ini membincangkan kelemahan OWASP 10 dalam strategi PHP dan mitigasi. Isu -isu utama termasuk suntikan, pengesahan yang rosak, dan XSS, dengan alat yang disyorkan untuk memantau dan mendapatkan aplikasi PHP.

PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. Mar 25, 2025 am 10:37 AM

Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. Mar 26, 2025 pm 04:18 PM

Artikel ini membincangkan mendapatkan muat naik fail PHP untuk mengelakkan kelemahan seperti suntikan kod. Ia memberi tumpuan kepada pengesahan jenis fail, penyimpanan selamat, dan pengendalian ralat untuk meningkatkan keselamatan aplikasi.

Penyulitan PHP: Penyulitan simetri vs asimetrik. Penyulitan PHP: Penyulitan simetri vs asimetrik. Mar 25, 2025 pm 03:12 PM

Artikel ini membincangkan penyulitan simetri dan asimetrik dalam PHP, membandingkan kesesuaian, prestasi, dan perbezaan keselamatan mereka. Penyulitan simetri lebih cepat dan sesuai untuk data pukal, manakala asimetrik digunakan untuk pertukaran utama yang selamat.

Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Mar 25, 2025 pm 03:06 PM

Artikel ini membincangkan pelaksanaan pengesahan dan kebenaran yang mantap dalam PHP untuk mencegah akses yang tidak dibenarkan, memperincikan amalan terbaik dan mengesyorkan alat peningkatan keselamatan.

PHP API Kadar Mengehadkan: Strategi Pelaksanaan. PHP API Kadar Mengehadkan: Strategi Pelaksanaan. Mar 26, 2025 pm 04:16 PM

Artikel ini membincangkan strategi untuk melaksanakan kadar API yang mengehadkan PHP, termasuk algoritma seperti baldi token dan baldi bocor, dan menggunakan perpustakaan seperti simfoni/kadar-limiter. Ia juga meliputi pemantauan, had kadar penyesuaian secara dinamik, dan tangan

Pengesahan Input PHP: Amalan Terbaik. Pengesahan Input PHP: Amalan Terbaik. Mar 26, 2025 pm 04:17 PM

Artikel membincangkan amalan terbaik untuk pengesahan input PHP untuk meningkatkan keselamatan, memberi tumpuan kepada teknik seperti menggunakan fungsi terbina dalam, pendekatan putih, dan pengesahan sisi pelayan.

PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. Mar 25, 2025 pm 03:05 PM

Artikel ini membincangkan strategi untuk mencegah serangan CSRF di PHP, termasuk menggunakan token CSRF, kuki tapak yang sama, dan pengurusan sesi yang betul.

See all articles