Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk mendapatkan nilai yang berbeza dalam dua tatasusunan dalam php
Dalam PHP, untuk mendapatkan elemen berbeza dalam dua tatasusunan, kita boleh menggunakan fungsi array_diff(). Fungsi ini mengembalikan tatasusunan baharu yang terdiri daripada elemen yang terdapat dalam tatasusunan 1 tetapi tidak hadir dalam tatasusunan 2.
Berikut ialah contoh, dengan mengandaikan bahawa dua tatasusunan yang ingin kita bandingkan ialah $arr1 dan $arr2:
$arr1 = array("apple", "banana", "orange"); $arr2 = array("banana", "orange", "pear", "kiwi"); $result = array_diff($arr1, $arr2); print_r($result); // 输出:Array ( [0] => apple )
Dalam contoh ini, elemen "epal" dalam $arr1 ialah not muncul dalam $arr2, jadi ia dikembalikan kepada tatasusunan $result.
Tetapi ketahui bahawa array_diff() hanya membandingkan tatasusunan satu dimensi. Jika anda ingin membandingkan tatasusunan berbilang dimensi, anda perlu menulis sendiri fungsi rekursif. Berikut ialah contoh membandingkan tatasusunan berbilang dimensi:
function array_diff_multi($arr1, $arr2) { $diff = array(); foreach ($arr1 as $key => $value) { if (is_array($value) && isset($arr2[$key]) && is_array($arr2[$key])) { $diff[$key] = array_diff_multi($value, $arr2[$key]); } else { if (!in_array($value, $arr2)) { $diff[$key] = $value; } } } return $diff; } $arr1 = array("fruit" => array("apple", "banana", "orange"), "color" => "blue"); $arr2 = array("fruit" => array("banana", "orange", "pear", "kiwi"), "color" => "red"); $result = array_diff_multi($arr1, $arr2); print_r($result); // 输出:Array ( [fruit] => Array ( [0] => apple ) [color] => blue )
Dalam contoh ini, kami mencipta array_diff_multi() fungsi tersuai yang membandingkan dua tatasusunan berbilang dimensi. Kami menggunakan rekursi untuk membandingkan elemen setiap sub-tatasusunan.
Ringkasnya, terdapat banyak cara untuk mendapatkan elemen berbeza dua tatasusunan dalam PHP. Fungsi array_diff() ialah salah satu kaedah yang paling mudah dan paling biasa digunakan, tetapi ia hanya berfungsi dengan tatasusunan satu dimensi. Jika anda ingin membandingkan tatasusunan berbilang dimensi, anda perlu menggunakan fungsi rekursif tersuai.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan nilai yang berbeza dalam dua tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!