Vì vậy, đây là những gì làm phiền tôi.PHP - Cách so sánh hai mảng và loại bỏ các giá trị trùng lặp
Tôi có hai mảng:
$array1 = array('[param1]' ,'demo' ,'[param2]' ,'some' ,'[param3]');
$array2 = array('value1' ,'demo' ,'value2' ,'some' ,'value3');
Bây giờ tôi muốn so sánh các mảng hai, và loại bỏ tất cả các giá trị trùng lặp.
Cuối cùng tôi muốn hai mảng này nhưng không có giá trị 'demo' và 'some' trong chúng.
Tôi muốn xóa tất cả các giá trị khỏi các mảng có cùng giá trị và khóa chỉ mục.
Mảng sẽ luôn có cùng số giá trị và chỉ mục, tôi chỉ muốn so sánh chúng và xóa các mục có cùng một chỉ mục và giá trị, từ cả hai giá trị và chỉ mục.
tôi đang làm một cái gì đó như thế này bây giờ:
$clean1 = array();
$clean2 = array();
foreach($array1 as $key => $value)
{
if($value !== $array2[$key])
{
$clean1[$key] = $value;
$clean2[$key] = $array2[$key];
}
}
var_export($clean1);
echo "<br />";
var_export($clean2);
Và làm việc này! Nhưng tôi tự hỏi có cách nào khác để làm điều này không? Có lẽ không sử dụng vòng lặp foreach? Có cách nào thanh lịch hơn để làm điều này?
Bạn có thể xác định những gì "thanh lịch" dành cho bạn không? Tôi thấy không có vấn đề ở đây ... – nmagerko
Điều này luôn đòi hỏi phải tìm kiếm tuyến tính. Về vấn đề đó, giải pháp của bạn là giải pháp hiệu quả nhất. – You