>  기사  >  백엔드 개발  >  PHP 2차원 배열 중복 제거 알고리즘에 대한 자세한 그래픽 설명

PHP 2차원 배열 중복 제거 알고리즘에 대한 자세한 그래픽 설명

墨辰丷
墨辰丷원래의
2018-05-29 14:50:051585검색

이 글에서 공유하는 코드는 PHP에서 구현된 키 값을 기반으로 2차원 배열을 병합하고 중복을 제거하는 알고리즘입니다. 도움이 필요한 친구들이 참고할 수 있습니다

Requirements

이제 다음과 같은 2차원 배열 집합이 있습니다. 배열:


array(8) {
 [0]=>
 array(2) {
  ["name"]=>
  string(4) "name"
  ["value"]=>
  string(6) "青叶"
 }
 [1]=>
 array(2) {
  ["name"]=>
  string(5) "phone"
  ["value"]=>
  string(11) "13812341234"
 }
 [2]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_507[]"
  ["value"]=>
  string(12) "我是青叶"
 }
 [3]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_508[]"
  ["value"]=>
  string(6) "合肥"
 }
 [4]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_509[]"
  ["value"]=>
  string(3) "男"
 }
 [5]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_510[]"
  ["value"]=>
  string(6) "足球"
 }
 [6]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_510[]"
  ["value"]=>
  string(6) "棒球"
 }
 [7]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_511[]"
  ["value"]=>
  string(16) "2016-12-15T11:15"
 }
}


배열의 값을 두 번째 차원 키 이름 이름 및 동일한 값과 병합하여 새 배열을 형성해야 합니다.

예를 들어 위 코드에서 fields_510이라는 두 개의 2차원 배열은 football과 Baseball의 값을 가진 배열로 병합되어야 합니다.

Thinking

PHP에서는 루프를 먼저 생각하기 때문에 여기서 루프 처리에 사용하는 것이 확실히 더 적합합니다. 이는 버블 정렬과 유사하므로 하나씩 비교하는 것이 가장 좋습니다. .

Code

코드는 다음과 같습니다.


$public_info = 数组;
for ($i=0;$i<count($public_info);$i++) {
  for ($j=$i+1;$j<count($public_info);$j++) {
    if ($public_info[$j][&#39;name&#39;] == $public_info[$i][&#39;name&#39;]) {
      $public_info[$i][&#39;value&#39;] .= &#39;,&#39; . $public_info[$j][&#39;value&#39;];
      unset($public_info[$j]);
    }
  }
}


실행 결과:


array(7) {
 [0]=>
 array(2) {
  ["name"]=>
  string(4) "name"
  ["value"]=>
  string(6) "青叶"
 }
 [1]=>
 array(2) {
  ["name"]=>
  string(5) "phone"
  ["value"]=>
  string(11) "13812341234"
 }
 [2]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_507[]"
  ["value"]=>
  string(12) "我是青叶"
 }
 [3]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_508[]"
  ["value"]=>
  string(6) "合肥"
 }
 [4]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_509[]"
  ["value"]=>
  string(3) "男"
 }
 [5]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_510[]"
  ["value"]=>
  string(13) "足球,棒球"
 }
 [7]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_511[]"
  ["value"]=>
  string(16) "2016-12-15T11:15"
 }
}


위 내용은 이 글의 전체 내용입니다. 나는 그것이되기를 바랍니다. 모두의 공부에 도움이 됩니다.


관련 권장사항:

내장 함수를 사용하지 않고 문자열을 정수로 변환하는 PHP 방법에 대한 자세한 설명

PHP의 숫자 문자열이 연속적으로 곱해지는지 확인하는 방법

ThinkPHP 의 로그인 및 종료 기능적 메서드 구현

위 내용은 PHP 2차원 배열 중복 제거 알고리즘에 대한 자세한 그래픽 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.