EDIT2: Các phiên bản dưới đây sử dụng Hashmap để xác định xem giá trị có tồn tại hay không. Trong trường hợp điều này là không thể, đây là một biến thể khác hoạt động an toàn với tất cả các giá trị PHP và thực hiện so sánh nghiêm ngặt [demo]: The versions below use a hashmap to determine if a value already exists. In case this is not possible, here is another variant that safely works with all PHP values and does a strict comparison [Demo]:
$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = function[$a]
{
$u = array[];
foreach[$a as $v]
{
foreach[$u as $vu]
if [$vu===$v] continue 2
;
$u[] = $v;
}
return $u;
};
var_dump[$unique[$array]]; # array[1,4,2,6,9,7]
Chỉnh sửa: phiên bản tương tự như bên dưới, nhưng w/o xây dựng trong các chức năng, chỉ có cấu trúc ngôn ngữ [demo]: Same version as below, but w/o build in functions, only language constructs [Demo]:
$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
Và trong trường hợp bạn không muốn có các mảng tạm thời lan rộng xung quanh, đây là một biến thể có chức năng ẩn danh:
$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = function[$a] /* similar as above but more expressive ... ... you have been warned: */ {for[$v=reset[$a];$v&&[isset[$k[$v]]||[$k[$v]=1]&&$u[]=$v];$v=next[$a]];return$u;};
var_dump[$unique[$array]]; # array[1,4,2,6,9,7]
Đầu tiên là đọc rằng bạn không muốn sử dụng
$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
4 hoặc các chức năng tương tự [$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
5, v.v.], vì vậy đây chỉ là một khởi đầu, có lẽ nó vẫn còn được sử dụng SOM:Bạn có thể sử dụng hướng dẫn sử dụng
$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
6 PHP kết hợp với $array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
7 Hướng dẫn sử dụng PHP cho mảng số nguyên [demo] của bạn:PHP Manual in combination with $array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
7 PHP Manual for your array of integers [Demo]:$array = array [1,4,2,1,6,4,9,7,2,9];
$array = array_keys[array_flip[$array]];
var_dump[$array]; # array[1,4,2,6,9,7]
Vì các khóa chỉ có thể tồn tại một lần trong một mảng PHP và
$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
6 giữ lại thứ tự, bạn sẽ nhận được kết quả của mình. Vì đó là các chức năng được xây dựng, nên nó khá nhanh và không có nhiều thứ để lặp lại để hoàn thành công việc. Hãy cùng xem với chương trình dưới đây để trình diễn.
$ Cho giá = mảng [2,5,2,10,4,5,8,8,16];
$uniqueArry = array[]; foreach[$givenArray as $val] { //Loop1 foreach[$uniqueArry as $uniqueValue] { //Loop2 if[$val == $uniqueValue] { continue 2; // Referring Outer loop [Loop 1] } } $uniqueArry[] = $val; } print_r[$uniqueArry];
Output:
Array [ [0] => 2 [1] => 5 [2] => 10 [3] => 4 [4] => 8 [5] => 16 ]
Giải trình:
Chúng tôi có một mảng số $ đã cho. Vòng ngoài [vòng 1] được sử dụng để lặp lại tất cả các giá trị của đã cho. Vòng lặp bên trong [vòng 2] là một mảng được sử dụng để lưu trữ các giá trị duy nhất.
Do đó, đối với mỗi lần lặp của vòng lặp bên ngoài [vòng 1], nó vòng qua tất cả các phần tử để duy nhất cho đến khi phần tử được gán hiện tại [$ val] của vòng ngoài [vòng 1] khớp với bất kỳ phần tử vòng lặp bên trong [vòng 2] nào.
Khi bất kỳ giá trị mảng bên trong nào [$ độc đáo] đáp ứng điều kiện
$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
9 với phần tử lặp hiện tại từ vòng ngoài, nó bỏ qua vòng lặp hiện tại và tiếp tục đến lần lặp tiếp theo của vòng ngoài. Ở đây tiếp tục 2 đại diện cho vòng lặp ổ cắm.LƯU Ý: Tiếp tục 1 [hoặc có thể sử dụng tiếp tục] Vòng lặp hiện tại được giới thiệu.Continue 1 [or can use continue] referred current loop.
Chúng ta có thể sử dụng cùng một logic mã ở trên cho các mảng chuỗi. Ví dụ
$givenArray = array["John","David","John","Peter", "Kevin", "Camren","Peter","David"]; $uniqueArry = array[]; foreach[$givenArray as $val] { //Loop1 foreach[$uniqueArry as $uniqueValue] { //Loop2 if[$val == $uniqueValue] { continue 2; } } $uniqueArry[] = $val; } print_r[$uniqueArry];
Output:
Array [ [0] => John [1] => David [2] => Peter [3] => Kevin [4] => Camren ]
Hãy hiểu với chương trình bên dưới
$students = array["J"=>"John","D" => "David", "J"=> "John","P" =>"Peter", "K"=> "Kevin", "C"=>"Camren","P"=> "Peter","D"=>"David"]; $uniqueArry = array[]; foreach[$students as $startWith => $student] { //Loop1 foreach[$uniqueArry as $uniqueValue] { //Loop2 if[$student == $uniqueValue] { continue 2; } } $uniqueArry[$startWith] = $student; } print_r[$uniqueArry];
Output:
Array [ [J] => John [D] => David [P] => Peter [K] => Kevin [C] => Camren ]
Giải trình:
Chúng tôi đã đưa ra một loạt các sinh viên kết hợp với một danh sách các tên sinh viên là giá trị và chữ cái tên bắt đầu của họ là chìa khóa.
Trong mỗi khóa và giá trị hiện tại sẽ được gán cho $ startwith & $ student. Sẽ tuân theo hành vi logic tương tự như mô tả ở trên.
Ở đây mảng độc đáo được sử dụng tên sinh viên độc đáo với tên startwith tên đáng kính.
Trong phương pháp trước, chúng tôi đã tìm hiểu về việc loại bỏ các bản sao bằng nhiều vòng cho các vòng.
Ở đây chúng tôi sẽ học cách lọc các giá trị trùng lặp bằng cách lưu trữ các thành phần mảng đã cho làm khóa mà không sử dụng hàm inbuilt PHP. Hãy cùng tìm hiểu cách với mã ví dụ sau.
$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
0Output:
$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
1Giải thích mã:
- Vòng lặp qua một mảng các phần tử nhất định có chứa các giá trị trùng lặp
- Tuyên bố duy nhất
- Đi qua mảng bằng cách sử dụng một vòng lặp. Trong quá trình lặp qua các phần tử mảng, giá trị của phần tử hiện tại được gán cho khóa & giá trị cho mảng mới được xác định là đơn vị.
- Nó không cho phép lưu trữ các khóa trùng lặp trong các mảng giúp tránh nhiều lần xuất hiện của các phần tử và chỉ giữ một giá trị.
Trong ví dụ trước, chúng tôi đã học cách lọc sao chép các giá trị và tạo một mảng các giá trị duy nhất từ một mảng nhất định.
Bây giờ chúng ta sẽ tìm thấy các yếu tố nhân đôi chỉ từ mảng đã cho.
Hãy cùng xem ví dụ về mã bên dưới
$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
2$array = array [1,4,2,1,6,4,9,7,2,9];
$unique = array[];
foreach[$array as $v]
isset[$k[$v]] || [$k[$v]=1] && $unique[] = $v;
var_dump[$unique]; # array[1,4,2,6,9,7]
3Giải thích mã:
- Xác định mảng trống $ DupplicateValues & $ độc đáo
- Vòng lặp qua một loạt các yếu tố đã cho
- Kiểm tra xem $ UniqueValues có chứa cùng một khóa với các phần tử lặp không. Lưu trữ phần tử trong mảng trùng lặpValues nếu khóa tồn tại lưu trữ trong mảng độc đáo.
Vâng, nó có lợi.
Vâng, nó rất hữu ích, tuy nhiên cần có thêm thông tin.
Nó không hữu ích, vì vậy không.
Phản hồi [tùy chọn] Vui lòng cung cấp thêm chi tiết về lựa chọn bạn đã chọn ở trên để chúng tôi có thể phân tích các nhận xét và ý tưởng sâu sắc và thực hiện các bước cần thiết cho chủ đề này. Cảm ơn bạn
Gửi phản hồi