English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 글은 PHP 이차원 배열에서 중복 제거 메서드를 설명합니다. 여러분께 공유하여 참고하십시오. 다음과 같습니다:
다음과 같은 이차원 배열을 대상으로 중복 제거를 요구합니다:
$arr = array( '0' => array( 'name' => 'james', 'age' =>30, ), '1=> array( 'name' => 'susu', 'age' =>26, ), '2=> array( 'name' => 'james', 'age' =>30, ), 'new' => array( 'name' => 'kube', 'age' =>37, ), 'list' => array( 'name' => 'kube', 'age' =>27, ), );
1、 이차원 배열 내의 일차원 배열의 값이 완전히 동일하지 않아야 합니다. 중복된 항목을 제거합니다:
코드如下:
<?php $arr = array( '0' => array( 'name' => 'james', 'age' =>30, ), '1=> array( 'name' => 'susu', 'age' =>26, ), '2=> array( 'name' => 'james', 'age' =>30, ), 'new' => array( 'name' => 'kube', 'age' =>37, ), 'list' => array( 'name' => 'kube', 'age' =>27, ), ); printf("Before tranform the array:<br>"); //원래의 배열을 출력합니다. print_r($arr); echo "<br/>"; function more_array_unique($arr = array()){ foreach($arr[0] as $k => $v){ $arr_inner_key[] = $k; //먼저 두차원 배열 내의 내부 배열의 키 값을 한차원 배열에 기록합니다. } foreach ($arras $k => $v){ $v = join(",", $v); //하위 차원 제거: implode()도 사용할 수 있습니다. $temp[$k] = $v; //원래의 키 값을 유지합니다. $temp[]는 원래 키 값을 유지하지 않습니다. } printf("After split the array:<br>"); print_r($temp); //분할된 배열을 출력합니다. echo"<br/>"; $temp = array_unique($temp); //중복 제거: 중복된 문자열을 제거합니다. foreach ($tempas $k => $v){ $a = explode(",", $v); //분할된 재조합 예: Array( [0] => james [1] => 30 ) $arr_after[$k] = array_combine($arr_inner_key, $a); //원래의 키와 값이 다시 결합됩니다. } //ksort($arr_after);//정렬이 필요하다면: ksort를 사용하여 배열을 정렬(원래 키 값 key를 유지) , sort는 키 값을 유지하지 않습니다. return $arr_after; } $arr_new = more_array_unique($arr); //printf("중복 제거 배열:<br>"); print_r($arr_new); 배열 변환 전: echo "<br/>"; ?>
출력 결과:
원래 배열 //) [ Array ( [0] => Array ( [name] => james [age] => 30 ) [1] => Array ([name] => susu [age] => 26 ] => Array ( [name] => james [age]=>20 ) [new] => Array ( [name] => kube [age] => 3[list] =>Array ( [name] => kube [age] => 37 ) 27 ) ) 배열을 분할한 후: //구분 후 배열 Array ( [0] => james,30 [1] => susu,26 [2] => james,30 [new] =>kube,37 [list] => kube,27 ) 중복 제거 배열: //중복 제거 후 배열 Array ( [0] => Array ( [name] => james [age] => 30 ) [1] => Array ([name] => susu [age] => 26 ) [new] => Array ( [name] => kube [age]=> 37 ) [list] => Array ( [name] => kube [age] => 27 ) )
2、 두차원 배열 내의 일차원 배열이 특정 키 값을 동일하게 할 수 없으므로 중복 항목을 제거합니다:
특정 키 값을 대상으로 중복 제거합니다
<?php $arr= array(……); //위와 같은 두차원 배열 functionsecond_array_unique_bykey($arr, $key){ $tmp_arr = array(); foreach($arr as $k => $v) { if(in_array($v[$key], $tmp_arr)) //search $v[$key]가 $tmp_arr 배열에 존재하는지 확인합니다. 존재하면 true를 반환합니다 { unset($arr[$k]); //변수를 소멸합니다. $tmp_arr에 동일한 값이 있으면 해당 값을 제거합니다 } else { $tmp_arr[$k] = $v[$key]; //다른 값을 이 배열에 저장합니다 } } //ksort($arr); //ksort 함수는 배열을 정렬합니다(원래 키 값 key를 유지합니다) sort는 키 값을 유지하지 않습니다 return $arr; } $key ='name'; $arr_key = second_array_unique_bykey($arr,$key); printf(\"As for the givenkey-%s:<br>\$ print_r($arr_key);}} echo "<br/>"; ?>
출력 결과:
제공된 키에 대해->name: Array ( [0] => Array ( [name] => james [age] => 30 ) [1] => Array ([name] => susu [age] => 26 ) [new] => Array ( [name] => kube [age]=> 37 ) )
PS: 이 사이트에는 두 가지 간단하고 실용적인 온라인 텍스트 중복 제거 도구가 있습니다. 여러분에게 추천드립니다:
온라인 중복 제거 도구:
http://tools.jb51.net/code/quchong
온라인 텍스트 중복 제거 도구:
http://tools.jb51.net/aideddesign/txt_quchong
PHP 관련 내용에 더 많은 관심을 가진 독자는 이 사이트의 특집을 확인할 수 있습니다:《PHP 배열(Array)操作技巧大全》、《PHP 일반적인 투어 알고리즘 및 기술 요약》、《php 문자열(string) 사용 요약》、《php 일반적인 함수 및 기술 요약》、《PHP 오류 및 예외 처리 방법 요약》、《PHP 기본 문법入门教程》、《php 객체 지향 프로그래밍入门教程》、《php+mysql 데이터베이스操作入门教程》 및 《php常见数据库操作技巧汇总》
이 문서에서 설명된 내용이 여러분의 PHP 프로그램 설계에 도움이 되길 바랍니다.
선언: 이 문서의 내용은 인터넷에서 가져왔으며, 저작권자에게 소유됩니다. 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 이 사이트는 소유권을 가지지 않으며, 인공編集 처리를하지 않으며, 관련 법적 책임도 부담하지 않습니다. 저작권 침해가 의심되는 내용을 발견하시면, notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com(보고할 때는 #을 @으로 변경하십시오. 신고하고 관련 증거를 제공하시면, 사실이 확인되면 이 사이트는 즉시 저작권 침해 내용을 삭제합니다。)