Rumah > pembangunan bahagian belakang > masalah PHP > PHP membandingkan tatasusunan untuk kesaksamaan

PHP membandingkan tatasusunan untuk kesaksamaan

WBOY
Lepaskan: 2023-05-07 14:44:09
asal
554 orang telah melayarinya

PHP ialah bahasa pengaturcaraan yang berkuasa dan digunakan secara meluas Ia menyediakan banyak fungsi dan kaedah berkaitan tatasusunan, membolehkan pembangun melakukan pelbagai operasi dengan mudah pada tatasusunan. Apabila menggunakan tatasusunan, kita selalunya perlu membandingkan sama ada dua tatasusunan adalah sama Artikel ini akan memperkenalkan cara PHP membandingkan tatasusunan untuk kesamaan, serta beberapa kemahiran praktikal yang berkaitan.

  1. Gunakan operator ==

Anda boleh menggunakan operator "==" dalam PHP untuk membandingkan sama ada dua tatasusunan adalah sama. Dua tatasusunan dianggap sama apabila mereka mempunyai pasangan nilai kunci yang sama dan pasangan nilai kunci berada dalam susunan yang sama. Contohnya:

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Salin selepas log masuk

Hasil keluaran ialah "dua tatasusunan adalah sama" kerana $arr1 dan $arr2 mempunyai pasangan nilai kunci yang sama, dan susunan pasangan nilai kunci ini juga sama.

Walau bagaimanapun, perlu diingatkan bahawa pengendali "==" hanya membandingkan sama ada kunci dan nilai tatasusunan adalah sama, ia tidak membandingkan jenis tatasusunan. Contohnya:

$arr1 = array(1, 2, 3);
$arr2 = array('1', '2', '3');

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Salin selepas log masuk

Hasil keluaran ialah "Kedua-dua tatasusunan adalah sama" walaupun $arr1 dan $arr2 mempunyai jenis yang berbeza. Ini kerana pengendali "==" hanya membandingkan kunci dan nilai untuk kesamaan, bukan jenis.

  1. Gunakan operator ===

Jika anda ingin membandingkan kunci, nilai dan jenis tatasusunan untuk kesamaan pada masa yang sama, anda perlu gunakan operator "===". Contohnya:

$arr1 = array(1, 2, 3);
$arr2 = array('1', '2', '3');

if ($arr1 === $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Salin selepas log masuk

Hasil keluaran ialah "dua tatasusunan tidak sama" kerana jenis $arr1 dan $arr2 adalah berbeza.

  1. Fungsi perbandingan tersuai

Dalam sesetengah kes, kita mungkin perlu membandingkan sama ada kunci dan nilai tatasusunan adalah sama, tetapi susunan kunci- pasangan nilai mungkin berbeza. Pada ketika ini, anda boleh menggunakan fungsi usort() PHP dan fungsi perbandingan tersuai untuk mencapai ini. Contohnya:

function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

usort($arr1, 'cmp');
usort($arr2, 'cmp');

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Salin selepas log masuk

Hasil output ialah "Dua tatasusunan adalah sama" kerana kami menggunakan fungsi usort() dan fungsi perbandingan tersuai cmp() untuk mengisih dan membandingkan dua tatasusunan.

  1. Nota

Apabila membandingkan tatasusunan, anda juga perlu memberi perhatian kepada perkara berikut:

  • Jika tatasusunan mengandungi tatasusunan lain, dan Jika pasangan nilai kunci adalah sama tetapi dalam susunan yang berbeza, ia dianggap sebagai tatasusunan yang berbeza.
  • Jika nama kunci yang sama wujud dalam dua tatasusunan tetapi nilai kunci berbeza, mereka dianggap tatasusunan berbeza.
  • Apabila menggunakan fungsi perbandingan tersuai, anda perlu memastikan bahawa nilai pulangan fungsi tersebut ialah 0, 1 atau -1 untuk melaksanakan perbandingan dengan betul.
  1. Contoh Praktikal

Berikut ialah contoh praktikal menggunakan pelbagai kaedah untuk membandingkan tatasusunan untuk kesamaan:

<?php
// 比较数组是否相等
$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

// 方法一:使用“==”运算符
if ($arr1 == $arr2) {
    echo '方法一:两个数组相等';
} else {
    echo '方法一:两个数组不相等';
}

echo '<br>';

// 方法二:使用“===”运算符
if ($arr1 === $arr2) {
    echo '方法二:两个数组相等';
} else {
    echo '方法二:两个数组不相等';
}

echo '<br>';

// 方法三:使用usort()函数和自定义比较函数
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

usort($arr1, 'cmp');
usort($arr2, 'cmp');

if ($arr1 == $arr2) {
    echo '方法三:两个数组相等';
} else {
    echo '方法三:两个数组不相等';
}
?>
Salin selepas log masuk

Jalankan kod di atas Selepas bahawa, keputusan berikut akan dikeluarkan:

方法一:两个数组相等
方法二:两个数组不相等
方法三:两个数组相等
Salin selepas log masuk
  1. Ringkasan

Dalam PHP, membandingkan tatasusunan untuk kesamaan adalah tugas yang sangat biasa. Kita boleh menggunakan operator "==" untuk membandingkan sama ada kunci dan nilai tatasusunan adalah sama, dan operator "===" untuk membandingkan sama ada kunci, nilai dan jenis tatasusunan adalah sama gunakan juga fungsi usort() dan fungsi perbandingan tersuai untuk membandingkan. Apabila membandingkan tatasusunan, anda juga perlu memberi perhatian kepada sama ada nama kunci dan nilai kunci yang sama wujud dalam tatasusunan, dan sama ada susunan pasangan nilai kunci adalah sama. Dengan kaedah di atas, anda boleh membandingkan tatasusunan untuk kesaksamaan dengan mudah, dengan itu meningkatkan kebolehbacaan dan kebolehselenggaraan kod anda.

Atas ialah kandungan terperinci PHP membandingkan tatasusunan untuk kesaksamaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan