어레이 중복을 제거하는 5가지 방법은 무엇입니까?
배열에서 중복 항목을 제거하는 5가지 방법은 무엇인가요?
5가지 배열 중복 제거 방법:
방법 1:
Double for 루프 중복 제거
원리 2를 2로 비교하고 같으면 두 번째 것을 삭제합니다.
예: 1 1 1 3 2 1 2 4
먼저 첫 번째 1, 즉 arr[0]을 다음 값과 하나씩 비교합니다. 다음 값이 arr[0]과 같으면 다음 값을 삭제합니다.
다음 결과는 다음과 같습니다. 첫 번째 완성은 1 3 2 2 4 다음 1을 모두 삭제하세요
마찬가지로 두 번째와 세 번째에도 자신과 동일한 요소가 삭제됩니다.
function noRepeat1(arr){ // 第一层for用来控制循环的次数 for(var i=0; i<arr.length; i++){ //第二层for 用于控制与第一层比较的元素 for(var j=i+1; j<arr.length; j++){ //如果相等 if(arr[i] == arr[j]){ //删除后面的 即第 j个位置上的元素 删除个数 1 个 arr.splice(j,1); // j--很关键的一步 如果删除 程序就会出错 //j--的原因是 每次使用splice删除元素时 返回的是一个新的数组 // 这意味这数组下次遍历是 比较市跳过了一个元素 /* 例如: 第一次删除后 返回的是 1 1 3 2 1 2 4 * 但是第二次遍历是 j的值为2 arr[2] = 3 * 相当于跳过一个元素 因此要 j-- * */ j--; } } } return arr; }
방법 2:
단일 레이어 for 루프
원리는 비슷합니다. 방법 1
function norepeat(arr){ arr.sort(); //先排序让大概相同的在一个位置,这里为什么说是大概相同 是因为sort排序是把元素当字符串排序的 它和可能排成 1 1 10 11 2 20 3 ... 不是我们想要的从小到大 for(var i = 0; i < arr.length-1;i++){ //还是两两比较 一样删除后面的 if(arr[i]==arr[i+1]){ arr.splice(i,1); //i-- 和j--同理 i--; } } return arr; }
방법 3:
원리: 빈 배열을 사용하여 처음 나타나는 요소를 저장합니다.
indexOf 속성 indexOf를 사용하여 문자열에서 지정된 문자가 나타나는 위치를 반환합니다. 그렇지 않은 경우 반환합니다. -1
그래서 우리는 -1이 반환될 때 이 속성을 사용하여 배열에 저장할 수 있습니다
function noRepeat2(arr){ var newArr = []; for(var i = 0; i < arr.length; i++){ if(newArr.indexOf(arr[i]) == -1){ newArr.push(arr[i]); } } return newArr; }
방법 4:
원리: 해당 속성이 없는 경우 객체의 아이디어를 사용하세요.
이 원칙을 사용하여 반환합니다. 정의되지 않은 경우 배열에 넣은 다음 이 속성에 값을 할당합니다
function norepeat3(arr) { var obj = {}; var newArr = []; for(var i = 0; i < arr.length; i++) { if(obj[arr[i]] == undefined) { newArr.push(arr[i]); obj[arr[i]] = 1; } } return newArr; }
방법 5:
원리: 루프 비교가 동일하면, 다음 요소 값을 0으로 두고 출력할 때 마지막으로 0인 항목을 삭제합니다. 전제는 데이터에 0이 있을 수 없지만 모든 것이 유연할 수 있다는 것입니다. 이 0을 대체하기 위해 어떤 값이든 설정할 수 있습니다. 당시 구현을 생각했기 때문에 최적화가 잘되지 않았습니다.
var newArr = []; //控制外循环 for(var i=0; i<arr.length-1;i++){ //内存循环 只比较后面的 for(j=i+1;j<arr.length;j++){ //如果相等就让其值等于0 if(arr[i]==arr[j]){ arr[j]=0; } } //去除值为0的 if(arr[i]==0){ continue; }else{ //放入新的数组 newArr.push(arr[i]); } }
추천 튜토리얼: "PHP 비디오 튜토리얼"
위 내용은 어레이 중복을 제거하는 5가지 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP의 array_unique() 함수는 배열에서 중복된 요소를 제거하는 데 사용됩니다. 기본적으로 엄격한 동등성(===)이 사용됩니다. 사용자 정의 비교 함수를 통해 중복 제거 기준을 지정할 수 있습니다. 사용자 정의 비교 함수를 생성하고 중복 제거 표준(예: 요소 길이 기준)을 지정합니다. 사용자 정의 비교 함수를 array_unique() 함수의 세 번째 매개변수로 전달합니다. 지정된 기준에 따라 요소를 복제합니다.

es5에서는 for 문과 indexOf() 함수를 사용하여 배열 중복 제거를 수행할 수 있습니다. 구문 "for(i=0;i<array length;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}". es6에서는 스프레드 연산자 Array.from() 및 Set을 사용하여 중복을 제거할 수 있습니다. 먼저 배열을 Set 객체로 변환하여 중복을 제거한 다음 스프레드 연산자 또는 Array.from() 함수를 사용하여 제거해야 합니다. Set 개체를 다시 배열로 변환합니다.

PHP 배열 중복 제거 후 키-값 일치를 유지하는 방법은 다음과 같습니다. array_unique() 함수를 사용하여 중복 값을 제거한 다음 array_flip() 함수를 사용하여 키-값 쌍을 교환합니다. 원본 배열을 중복 제거된 배열과 병합하고 배열 병합 방법을 사용하여 키-값 대응을 유지합니다.

PHP에서는 array_unique() 함수를 사용하여 특정 키-값 쌍을 기반으로 배열에서 중복 항목을 제거합니다. 함수를 호출할 때 배열을 매개변수로 전달하고 정렬 방법을 두 번째 매개변수로 선택합니다. 이 함수는 지정된 키-값 쌍을 기반으로 중복 항목이 제거된 새 배열을 반환합니다.

PHP 배열 중복 제거 시 빈 값 및 null 값 처리에 대한 팁: array_filter와 함께 array_unique를 사용하여 빈 값 및 null 값을 필터링합니다. array_unique를 사용하고 빈 값과 null 값을 동일하게 처리하는 사용자 지정 비교 함수를 정의하세요. array_reduce를 사용하여 배열을 반복하고 빈 값이나 null 값이 포함되지 않은 경우 항목을 추가합니다.

PHP에서 중복 배열을 제외하는 방법: 1. PHP 샘플 파일을 생성합니다. 2. 중복 제거할 배열을 "$oldArr"로 정의하고, 중복 제거 후 새 배열을 "$newArr"로 정의합니다. 함수는 배열에서 중복 요소를 제거하고 중복 제거된 배열을 반환합니다. 코드는 "$newArr = array_unique($oldArr);"입니다. 4. 중복 제거는 for 루프를 통해서도 수행할 수 있습니다.

PHP에서 배열의 중복 요소를 제거하는 방법: 1. "array_unique()" 함수를 사용하여 배열의 중복 데이터를 제거합니다. 2. foreach 루프를 탐색하고 중복 제거를 달성하기 위해 중복되지 않은 데이터를 저장할 새 배열을 정의합니다. 3. array_flip() 및 array_keys() 함수를 사용하여 중복 제거된 배열을 가져옵니다. 4. array_filter() 함수를 익명 함수와 함께 사용하여 원본 배열을 중복 제거합니다.

방법: 1. "[...new Set(arr)]" 문을 사용합니다. 2. "Array.from(new Set(arr))" 문을 사용합니다. 3. 필터 및 indexOf 함수를 사용합니다. double for 루프를 실행하여 값이 중복되었는지 확인하고, 중복된 값이 있으면 push()를 사용하여 삭제합니다.
