Làm cách nào để tìm các khóa trùng lặp trong một mảng trong PHP?
Ở đây chúng ta sẽ học cách lọc các giá trị trùng lặp bằng cách lưu trữ các phần tử mảng đã cho dưới dạng khóa mà không cần sử dụng hàm sẵn có của PHP. Hãy tìm hiểu cách thực hiện với mã ví dụ sau Show $givenArray = array(2,5,2,10,4,5,8,16); $uniqueArry = array(); foreach($givenArray as $val) { $uniqueArry[$val] = $val; } print_r($uniqueArry); đầu ra Array ( [2] => 2 [5] => 5 [10] => 10 [4] => 4 [8] => 8 [16] => 16 ) giải thích mã
Xóa các giá trị trùng lặp khỏi mảngĐể xóa các giá trị trùng lặp khỏi một mảng, hãy sử dụng hàm PHP. mảng_unique(). Hàm này trả về một mảng mới loại bỏ các giá trị trùng lặp mà không thay đổi khóa của các phần tử còn lại.Ví dụ. 1 [1] => abc [3] => mp [4] => 33 [6] => 8 ) ?> array_unique() coi các giá trị là chuỗi, vì vậy, nếu mảng chứa chẳng hạn. 12 (số nguyên) và '12' (chuỗi), hàm chỉ giữ giá trị đầu tiên. Ví dụ. 12 [1] => abc [3] => mp [4] => 33 ) ?> Nhận các phần tử mảng trùng lặpNếu bạn chỉ muốn lấy các phần tử trùng lặp từ một mảng, bạn có thể sử dụng cấu trúc sau.array_unique(array_diff_assoc($aray, array_unique($aray)));Ví dụ. 12 [5] => mp ) ?>PHP không có chức năng đặc biệt để đặt lại các phím mảng, nhưng nó có thể được sử dụng một chức năng khác để có được kết quả này. Để đặt lại (hoặc đánh số lại) các khóa của một mảng, bạn có thể sử dụng array_merge(). Hàm này hợp nhất các phần tử của một hoặc nhiều mảng lại với nhau. Trong mảng kết quả, các phím số sẽ được đánh số lại, bắt đầu từ số 0. Vì vậy, nếu bạn chỉ thêm một mảng có các phím số không theo thứ tự, thì nó sẽ trả về một mảng có các phím số được sắp xếp theo thứ tự, bắt đầu từ 0, với các giá trị theo cùng thứ tự. Ví dụ. 'abc', 5=>23, 12=>'mp'); $aray = array_merge($aray); // test print_r($aray); // Array ( [0] => abc [1] => 23 [2] => mp ) ?> Nếu nhiều phần tử trong khai báo mảng sử dụng cùng một khóa thì chỉ phần tử cuối cùng sẽ được sử dụng và tất cả các phần tử khác sẽ bị ghi đè Chặn kiểm tra trong trình chỉnh sửa
|