Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menentukan sama ada dua tatasusunan adalah konsisten dalam php

Bagaimana untuk menentukan sama ada dua tatasusunan adalah konsisten dalam php

PHPz
PHPzasal
2023-04-24 14:49:511322semak imbas

Dalam pengaturcaraan PHP, adalah keperluan yang sangat biasa untuk menentukan sama ada dua tatasusunan adalah konsisten. Terutama apabila memproses data penyerahan borang, selalunya perlu untuk mengesahkan data yang diserahkan oleh pengguna Dalam kes ini, adalah perlu untuk membandingkan sama ada kedua-dua tatasusunan adalah sama. Di bawah ini kami memperkenalkan beberapa kaedah untuk menentukan sama ada dua tatasusunan adalah konsisten.

Kaedah 1: Gunakan fungsi perbandingan tatasusunan

PHP menyediakan beberapa fungsi untuk membandingkan tatasusunan, seperti array_diff(), array_intersect(), dsb. Untuk menentukan sama ada dua tatasusunan adalah konsisten, anda boleh menggunakan fungsi array_diff_assoc(). Fungsi fungsi ini adalah untuk mencari perbezaan antara dua tatasusunan, tetapi ciri khasnya ialah apabila membandingkan sama ada dua elemen adalah sama, bukan sahaja nilai tetapi juga nama kunci dibandingkan. Format khusus adalah seperti berikut:

array_diff_assoc ( array $array1 , array $array2 [, array $... ] ) : array

Antaranya, tatasusunan1 dan tatasusunan2 ialah dua tatasusunan yang akan dibandingkan berbeza daripada array2 dikembalikan. Berikut ialah kod sampel:

$array1 = array('name'=>'Tom', 'age'=>23, 'gender'=>'male');
$array2 = array('name'=>'Tom', 'age'=>24, 'gender'=>'male');
 
if(array_diff_assoc($array1, $array2)==NULL)
{
    echo "两个数组相同";
}
else
{
    echo "两个数组不相同";
}

Dalam kod ini, dua tatasusunan $array1 dan $array2 pertama kali ditakrifkan, kemudian fungsi array_diff_assoc() digunakan untuk membandingkan dua tatasusunan, dan akhirnya penghakiman adalah berdasarkan hasil pulangan fungsi Sama ada dua tatasusunan adalah sama. Jika kedua-dua tatasusunan adalah sama, hasil pulangan adalah NULL, jika tidak unsur-unsur dua tatasusunan yang berbeza dikembalikan.

Kaedah 2: Gunakan gelung traversal

Selain menggunakan fungsi perbandingan tatasusunan, anda juga boleh membandingkan dua tatasusunan dengan menggelungkannya. Ideanya adalah untuk membandingkan kunci dan nilai kedua-dua tatasusunan jika nama kunci dan nilai kunci adalah sama, kedua-dua tatasusunan dianggap sama. Berikut ialah contoh kod:

$array1 = array('name'=>'Tom', 'age'=>23, 'gender'=>'male');
$array2 = array('name'=>'Tom', 'age'=>24, 'gender'=>'male');
 
$flag = true; //假设两个数组相同
foreach($array1 as $key=>$value)
{
    if(!isset($array2[$key]) || $array2[$key]!=$value)
    {
        $flag = false; //标识为不相同
        break;
    }
}
if($flag)
{
    echo "两个数组相同";
}
else
{
    echo "两个数组不相同";
}

Dalam kod ini, dua tatasusunan $array1 dan $array2 ditakrifkan, dan kemudian semua elemen tatasusunan $array1 digelung untuk menentukan sama ada kunci dan nilainya ​adalah sama seperti $ array2 array adalah sama. Dua tatasusunan dianggap berbeza jika mana-mana kunci atau nilai berbeza. Akhirnya, ia dinilai sama ada kedua-dua tatasusunan adalah sama mengikut bendera $flag.

Kaedah 3: Perbandingan bersiri

Satu lagi cara mudah dan berkesan untuk membandingkan dua tatasusunan ialah menukarnya terlebih dahulu kepada rentetan melalui penyirian, dan kemudian membandingkannya. Kod khusus adalah seperti berikut:

$array1 = array('name'=>'Tom', 'age'=>23, 'gender'=>'male');
$array2 = array('name'=>'Tom', 'age'=>24, 'gender'=>'male');
 
if(serialize($array1)==serialize($array2))
{
    echo "两个数组相同";
}
else
{
    echo "两个数组不相同";
}

Selepas menukar dua tatasusunan kepada rentetan menggunakan fungsi serialize(), kemudian gunakan operator "==" untuk perbandingan Jika dua rentetan adalah sama, ia bermakna kedua-dua tatasusunan adalah sama. Kelebihan kaedah ini ialah ia mudah dan mudah, tetapi kerana keperluan untuk perbandingan bersiri dan rentetan, ia mungkin sedikit menjejaskan kecekapan pelaksanaan.

Ringkasnya, terdapat banyak kaedah untuk membandingkan dua tatasusunan, dan anda boleh memilih kaedah yang paling sesuai mengikut situasi sebenar. Tidak kira kaedah yang digunakan, anda harus memastikan bahawa nama kunci dan nilai kunci kedua-dua tatasusunan adalah konsisten sebelum perbandingan, jika tidak, hasil perbandingan akan terpesong.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada dua tatasusunan adalah konsisten 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