Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengalih keluar nilai pendua daripada tatasusunan dalam php

Bagaimana untuk mengalih keluar nilai pendua daripada tatasusunan dalam php

PHPz
PHPzasal
2023-04-23 09:18:40887semak imbas

Dengan pembangunan Internet yang berterusan, kepentingan pembangunan web telah menarik lebih banyak perhatian. Dalam proses pembangunan Web, bahasa PHP, sebagai salah satu bahasa yang paling asas, digunakan secara meluas dalam pengaturcaraan sisi pelayan, dan tatasusunan adalah salah satu komponen penting dalam bahasa PHP.

Biasanya, apabila kami memproses data, kami kadangkala perlu menggunakan tatasusunan, dan kami menjangkakan nilai dalaman tidak berulang Jika terdapat nilai yang sama, hasil berulang akan mudah berlaku. Untuk melakukan ini, kita perlu menggunakan fungsi khas untuk mengalih keluar nilai pendua daripada tatasusunan PHP.

Untuk mengalih keluar nilai pendua daripada tatasusunan dalam PHP, fungsi array_unique() sebenarnya digunakan. Seterusnya, kami akan memperkenalkan cara menggunakannya dengan beberapa contoh.

  1. Alih keluar nilai pendua daripada tatasusunan diindeks

Untuk mengalih keluar elemen pendua daripada tatasusunan dalam PHP, anda boleh menggunakan fungsi array_unique() PHP terbina dalam. Ia boleh membantu kami menapis elemen pendua dalam tatasusunan, mengekalkan kejadian pertama elemen dalam fail dan semua salinan berikutnya akan dipadamkan.

Berikut menunjukkan cara menggunakan fungsi array_unique() untuk mengalih keluar nilai pendua dalam tatasusunan indeks:

<?php

$names = array("John", "Peter", "David", "Peter", "Mike", "David", "Mark", "Peter");

$unique_names = array_unique($names);

print_r($unique_names);

?>

Hasil output ialah:

Array
(
    [0] => John
    [1] => Peter
    [2] => David
    [4] => Mike
    [6] => Mark
)

Kita dapat melihat bahawa indeks Unsur "Peter" dan "David" untuk 3 dan 5 telah dipadamkan, meninggalkan hanya satu. Ini kerana fungsi array_unique() mengekalkan kejadian pertama elemen dalam tatasusunan dan memadamkan semua kejadian seterusnya bagi elemen tersebut.

  1. Alih keluar nilai pendua dari tatasusunan bersekutu

Selain mengindeks tatasusunan, kami juga boleh menggunakan fungsi array_unique() untuk mengalih keluar nilai pendua daripada tatasusunan bersekutu dalam PHP. Untuk tatasusunan bersekutu, penjagaan perlu diambil semasa menentukan kunci.

Berikut menunjukkan cara menggunakan fungsi array_unique() untuk mengalih keluar nilai pendua dalam tatasusunan bersekutu:

<?php

$users = array(
    "id1" => array("name" => "John", "email" => "john@example.com"),
    "id2" => array("name" => "Peter", "email" => "peter@example.com"),
    "id3" => array("name" => "David", "email" => "david@example.com"),
    "id4" => array("name" => "Peter", "email" => "peter@example.com"),
    "id5" => array("name" => "Mike", "email" => "mike@example.com"),
    "id6" => array("name" => "David", "email" => "david@example.com"),
);

// 指定"name"键去除重复值
$unique_users = array_map("unserialize", array_unique(array_map("serialize", $users)));

print_r($unique_users);

?>

Hasil output ialah:

Array
(
    [id1] => Array
        (
            [name] => John
            [email] => john@example.com
        )

    [id2] => Array
        (
            [name] => Peter
            [email] => peter@example.com
        )

    [id3] => Array
        (
            [name] => David
            [email] => david@example.com
        )

    [id5] => Array
        (
            [name] => Mike
            [email] => mike@example.com
        )

)

Kita dapat melihat bahawa dalam Apabila menentukan kekunci "nama", elemen "id4" telah dialih keluar, mengekalkan salinan pertama yang muncul dalam tatasusunan bersekutu.

  1. Alih keluar nilai pendua dari tatasusunan berbilang dimensi

Selain tatasusunan indeks dan tatasusunan bersekutu, kita juga boleh menggunakan fungsi array_unique() untuk mengalih keluar nilai pendua daripada tatasusunan berbilang dimensi dalam nilai Pendua PHP. Untuk tatasusunan berbilang dimensi, anda perlu memberi perhatian kepada lokasi nilai kunci yang ditentukan.

Berikut menunjukkan cara menggunakan fungsi array_unique() untuk mengalih keluar nilai pendua dalam tatasusunan berbilang dimensi:

<?php

$courses = array(
    array("name" => "PHP Programming", "code" => "PHP101"),
    array("name" => "Web Design", "code" => "WD101"),
    array("name" => "PHP Programming", "code" => "PHP101"), 
    array("name" => "Java Programming", "code" => "JAVA101")
);

// 指定“name”键值的位置
$unique_courses = array_map("unserialize", array_unique(array_map("serialize", array_column($courses , null , 'name'))));

print_r($unique_courses);

?>

Hasil output ialah:

Array
(
    [PHP Programming] => Array
        (
            [name] => PHP Programming
            [code] => PHP101
        )

    [Web Design] => Array
        (
            [name] => Web Design
            [code] => WD101
        )

    [Java Programming] => Array
        (
            [name] => Java Programming
            [code] => JAVA101
        )

)

Kita dapat melihat bahawa, nyatakan Pada kedudukan kekunci "nama", elemen "Pengaturcaraan PHP" telah dialih keluar, meninggalkan salinan kejadian pertama dalam tatasusunan berbilang dimensi.

Ringkasan

Dalam PHP, melalui fungsi array_unique(), kita boleh mengalih keluar nilai pendua dalam tatasusunan dengan mudah. Untuk tatasusunan diindeks, tatasusunan bersekutu dan tatasusunan berbilang dimensi, anda boleh menentukan parameter fungsi mengikut situasi khusus untuk mencapai hasil yang terbaik. Dengan mempelajari penggunaan fungsi array_unique(), kami boleh menguasai aplikasi bahasa PHP dengan lebih baik dalam pembangunan Web dan meningkatkan lagi tahap teknikal kami.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar nilai pendua daripada tatasusunan dalam 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