Hàm array_diff_uassoc() trong PHP
# Description
Hàm array_diff_uassoc()
sẽ trả về một mảng các phần tử theo điều kiện của hàm $key_compare_func truyền vào, điều này khác với array_diff_assoc() là hàm để so sánh theo toán tử bằng.
# Parameters
Cú pháp: array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )
Trong đó:
- $array1 là mảng thứ nhất, kết quả trả về sẽ nằm trong mảng này
- $array2 là mảng thứ hai
- ...
- $key_compare_func là hàm do người dùng định nghĩa, nếu kết quả nó trả về true thì phần tử lượt check đó được chọn, ngược lại sẽ không được chọn và hàm này so sánh các
$key
thay vìvalue
:- Hàm này phải trả về 0 nếu
$key1 = $key2
, lớn hơn 0 nếu$key1 > $key2
và bé hơn 0 nếu$key1 < $key2
- Sự so sánh dựa vào thứ tự trong mã ASCII
- Hàm này phải trả về 0 nếu
Để rõ hơn thì bạn nên xem qua hàm array_diff_assoc() và sau đó xem các ví dụ dưới đây.
Bài viết này được đăng tại [free tuts .net]
# Return values
Hàm sẽ trả về một mảng (mảng con của $array1) gồm các phần tử được quyết định bởi $key_compare_func.
# Examples
Trong ví dụ này hàm key_compare_func
sẽ có hai tham số truyền vào là $a
và $b
chính là các key lần lượt là key của mảng thứ nhất trong danh sách tham số truyền vào và các key của mảng còn lại. Nếu hàm trả về khác 0 (lớn hơn 0 hoặc bé hơn 0) thì phần tử của lượt đó được chọn.
Code:
function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b)? 1:-1; } $array1 = array( "a" => "freetuts", "b" => "www", "c" => "https://freetuts.net" ); $array2 = array( "a" => "freetuts", "b" => "www", "c" => "http://freetuts" ); $result = array_diff_uassoc($array1, $array2, "key_compare_func"); echo '<pre>'; print_r($result);
Array ( [c] => https://freetuts.net )
Như vậy chỉ có key c
là được chọn lý do là nó không tồn tại bên $array2