PHP so sánh các mảng khóa và giá trị. Trong hướng dẫn này, bạn sẽ học cách PHP so sánh hai hoặc nhiều khóa và giá trị của mảng và tìm sự khác biệt giữa hai hoặc nhiều mảng bằng cách sử dụng hàm array_diff_assoc() của PHP
Ngoài ra, bạn sẽ tìm hiểu về hàm PHP array_diff_assoc(), định nghĩa, cú pháp, tham số và xem các ví dụ khác nhau
PHP So sánh hai hoặc nhiều mảng Keys và Values
Mảng PHP_diff_assoc()
Sự định nghĩa. Hàm array_diff_assoc() của PHP dựng sẵn. Về cơ bản, Điều này có thể được sử dụng để lấy hoặc tính toán sự khác biệt giữa một hoặc nhiều mảng trong PHP. Hàm array_diff_assoc() trong PHP so sánh các khóa và giá trị giữa một hoặc nhiều mảng và trả về sự khác biệt giữa chúng
Ghi chú. - Hàm array_diff_assoc() của PHP so sánh các khóa và giá trị của hai hoặc nhiều mảng và nó sẽ trả về một mảng chứa các mục nhập từ mảng_thứ nhất không có trong mảng_thứ hai hoặc mảng_thứ ba và mảng_n, v.v.
cú pháp
Cú pháp của hàm PHP array_diff_assoc() là
array_diff_assoc($array_first, $array_second, $array_third, …, $array_n)Các tham số của hàm array_diff_assoc()
Tham sốMô tảmảng đầu tiênĐây là mảng đầu tiên của hàm này và bắt buộc phải có. Nó là một mảng để so sánh fromarray secondĐây là mảng thứ hai của hàm này và nó cũng được yêu cầu. Nó là một mảng được so sánh với mảng đầu tiên. Đây là mảng thứ n và nó là tùy chọn. Nó là một mảng được so sánh với mảng đầu tiênVí dụ 1
Bây giờ, chúng ta sẽ lấy ví dụ đầu tiên với PHP array_diff_assoc() để so sánh ba mảng khóa và giá trị trong PHP. Hãy xem bên dưới
<?php $arr1 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"CODEIGNITER", "4"=>"WORDPRESS", "5"=>"JOOMLA"); $arr2 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"C#", "4"=>"C++"); $arr3 = array("1"=>"PHP", "2"=>"LARAVEL"); print_r(array_diff_assoc($arr1, $arr2, $arr3)); ?>
Đầu ra của đoạn mã trên là
Array ( [3] => CODEIGNITER [4] => WORDPRESS [5] => JOOMLA )Ví dụ – 2
Hãy lấy ví dụ thứ hai, để so sánh hai mảng khóa và giá trị trong PHP. Và tìm sự khác biệt giữa chúng
Hàm này so sánh các khóa và giá trị của hai (hoặc nhiều) mảng và trả về một mảng chứa các mục từ mảng1 nhưng không có trong mảng2 hoặc mảng3, v.v.
Hàm này khác với hàm array_diff() vì array_diff() chỉ sử dụng các giá trị để so sánh với các mảng khác trong khi hàm array_diff_assoc() sử dụng các khóa và giá trị trong khi so sánh với các mảng khác
cú pháp
array array_diff_assoc( array $array1, array $array2 [, array $array3...] );Thông số
Sr. STT Thông số và Mô tả 1mảng1 (Bắt buộc)
Nó là một mảng để so sánh từ
2mảng2 (Bắt buộc)
Nó là một mảng được so sánh với mảng đầu tiên
3mảng3 (Tùy chọn)
Nó là một mảng được so sánh với mảng đầu tiên
Giá trị trả về
Hàm array_diff_assoc() trả về một mảng chứa tất cả các giá trị từ mảng1 không có trong bất kỳ mảng nào khác có cùng khóa
Phiên bản PHP
Chức năng này lần đầu tiên được giới thiệu trong PHP Phiên bản 4. 3. 0
Ví dụ
Hãy thử ví dụ sau. Ở đây "a" => "orange" và "c"=>"banana" có trong cả hai mảng, vì vậy nó không có sẵn trong kết quả −
"orange", "b"=>"mango", "c"=>"banana"); $input2 = array( "a"=>"orange", "b"=>"apple", "c"=>"banana"); print_r(array_diff_assoc($input1, $input2)); ?>Điều này sẽ tạo ra kết quả sau -
Array ( [b] => mango )Ví dụ
Ở đây cả hai mảng đều có các khóa khác nhau và các giá trị tương ứng cho tất cả các cặp, ví dụ: "a"=>"orange" không có trong mảng thứ hai, tương tự các cặp giá trị khóa khác không có trong mảng thứ hai nên chúng sẽ có trong mảng thứ hai
"orange", "b"=>"mango", "c"=>"banana"); $input2 = array( "a"=>"banana", "b"=>"apple", "c"=>"orange"); print_r(array_diff_assoc($input1, $input2)); ?>Điều này sẽ tạo ra kết quả sau -
Array ( [a] => orange [b] => mango [c] => banana )Ví dụ
Ví dụ này làm rõ rằng hai giá trị từ cặp khóa => giá trị chỉ được coi là bằng nhau nếu (chuỗi) $elem1 === (chuỗi) $elem2. -
Hàm array_intersect_key() tạo một mảng chứa các khóa và giá trị của mảng đầu tiên có các khóa
PHP array_intersect_key
Parray_intersect_key() là một hàm tích hợp sẵn giúp so sánh các khóa của hai (hoặc nhiều) mảng và trả về kết quả khớp. Hàm so sánh các khóa của hai hoặc nhiều mảng và trả về mảng chứa các mục từ mảng 1 có trong mảng 2, mảng 3, v.v.
Array_intersect_key() trong PHP được sử dụng để tính giao điểm của hai hoặc nhiều mảng. Hàm này khác với array_intersect() và array_intersect_assoc() ở chỗ nó sử dụng các khóa để so sánh và trả về các phần tử khóa phù hợp.
The array_intersect_key() trả về một mảng chứa tất cả các mục của mảng 1, có các khóa trong tất cả các đối số.
cú pháp
Xem cú pháp sau
________số 8Thông số
Tham số array1 là bắt buộc và mảng đầu tiên là mảng mà các mảng khác sẽ được so sánh với
Tham số array2 là bắt buộc và một mảng sẽ được so sánh với mảng đầu tiên
Mảng 3 là tùy chọn và mảng này sẽ được so sánh với mảng đầu tiên
So sánh các khóa của hai mảng được lập chỉ mục
xem mã
<?php $a1 = array("eleven", "dustin", "will", "nancy"); $a2 = array("mike", "lucas", "steve"); $result = array_intersect_key($a1, $a2); print_r($result);Xem đầu ra
<?php $arr1 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"CODEIGNITER", "4"=>"WORDPRESS", "5"=>"JOOMLA"); $arr2 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"C#", "4"=>"C++"); $arr3 = array("1"=>"PHP", "2"=>"LARAVEL"); print_r(array_diff_assoc($arr1, $arr2, $arr3)); ?> 0Chúng tôi nhận được ba mục vì mảng $a1 và $a2 có cùng chỉ số 0, 1, 2. Vì vậy, nó sẽ trả về ba mục đầu tiên vì ba chỉ mục của $a1 khớp với $a2
So sánh các khóa của ba mảng
Xem đoạn mã sau
<?php $arr1 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"CODEIGNITER", "4"=>"WORDPRESS", "5"=>"JOOMLA"); $arr2 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"C#", "4"=>"C++"); $arr3 = array("1"=>"PHP", "2"=>"LARAVEL"); print_r(array_diff_assoc($arr1, $arr2, $arr3)); ?> 1Xem đầu ra sau
<?php $arr1 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"CODEIGNITER", "4"=>"WORDPRESS", "5"=>"JOOMLA"); $arr2 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"C#", "4"=>"C++"); $arr3 = array("1"=>"PHP", "2"=>"LARAVEL"); print_r(array_diff_assoc($arr1, $arr2, $arr3)); ?> 0So sánh các khóa Mảng liên kết
Xem đoạn mã sau
<?php $arr1 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"CODEIGNITER", "4"=>"WORDPRESS", "5"=>"JOOMLA"); $arr2 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"C#", "4"=>"C++"); $arr3 = array("1"=>"PHP", "2"=>"LARAVEL"); print_r(array_diff_assoc($arr1, $arr2, $arr3)); ?> 3Xem đầu ra
<?php $arr1 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"CODEIGNITER", "4"=>"WORDPRESS", "5"=>"JOOMLA"); $arr2 = array("1"=>"PHP", "2"=>"LARAVEL", "3"=>"C#", "4"=>"C++"); $arr3 = array("1"=>"PHP", "2"=>"LARAVEL"); print_r(array_diff_assoc($arr1, $arr2, $arr3)); ?> 4Trong đoạn mã trên, mười một là khóa duy nhất trong cả ba mảng, cho kết quả là mười một
Nếu không có khóa mười một trong một mảng, thì một mảng trống sẽ được trả về
Đó là nó cho hướng dẫn này
Bài viết đề xuất
PHP array_fill_keys
Mảng PHP_udiff
PHP mảng_reduce
PHP array_flip
PHP array_walk
Bài viết trước Parray_intersect. Hướng dẫn đầy đủ
Bài viết tiếp theo Parray_fill_keys của PHP. Hướng dẫn đầy đủ
kranal
https. //appdividend. com/
Krunal Lathiya là Kỹ sư phần mềm với hơn tám năm kinh nghiệm. Anh ấy đã phát triển một nền tảng vững chắc về các nguyên tắc khoa học máy tính và niềm đam mê giải quyết vấn đề. Ngoài ra, Krunal có kiến thức tuyệt vời về Khoa học dữ liệu và Học máy, đồng thời là chuyên gia về Ngôn ngữ Python. Krunal có kinh nghiệm với nhiều ngôn ngữ lập trình và công nghệ khác nhau, bao gồm PHP, R, Golang và JavaScript. Anh ấy cảm thấy thoải mái khi làm việc trong lĩnh vực phát triển front-end và back-end