정의 및 사용법:
array_diff() 함수는 두 배열의 차이 배열을 반환합니다. 이 배열에는 비교되는 배열에 있지만 다른 매개변수 배열에는 없는 모든 키가 포함되어 있습니다.
반환된 배열에서 키 이름은 변경되지 않은 상태로 유지됩니다.
구문
array_diff(<em>array1</em>,<em>array2</em>,<em>array3</em>...);
参数 | 描述 |
array1 | 必需。与其他数组进行比较的第一个数组。 |
array2 | 必需。与第一个数组进行比较的数组。 |
array3 | 可选。与第一个数组进行比较的其他数组 |
팁: 하나 이상의 어레이를 첫 번째 어레이와 비교할 수 있습니다.
반환값
返回值: | 返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键值。 |
PHP 版本: | 4.0.1+ |
설명:
인터넷에서 하는 말인데 제가 평소에 사용하는 경우는 , 상대적으로 열악한 세트라는 것만 알고 크게 생각하지 않았는데 최근 프로젝트에서 라벨 처리에 문제가 발생하여 이전에 이런 방식으로 사용한 적이 없습니다. 나중에 이런 일이 다시 발생할 경우를 대비해 여기에 기록하겠습니다.
내 비즈니스 요구 사항: 각 고객은 단일 또는 여러 개의 태그를 가질 수 있으며 태그 저장소는 단일 또는 다중 레코드이므로 추가하는 것은 매우 간단합니다. 을 추가하거나 여러 레코드를 일괄 추가하기만 하면 됩니다. 그러나 수정 사항은 다릅니다. 즉, 일반인의 관점에서 이전 태그인 경우 최신 항목이 주요 항목입니다. 새 태그가 포함되어 있지 않으면 새 태그를 추가하고 이전 태그를 삭제해야 합니다. 그러나 또 다른 상황이 있습니다. 이전 태그 중 일부에 새 태그가 하나 이상 포함되어 있으면 문제는 다음과 같습니다. 이전 태그에 새 태그가 포함되지 않은 새 태그를 추가하면 이전 태그에 새 태그가 없는 것으로 추정됩니다. 예를 들어 설명하겠습니다.
예:
이전 태그: [A, B, C]
새 태그: [C, D, E]
분석은 다음과 같습니다. 다음은 다음과 같습니다.
1: 사실 우리의 목적은 다음과 같습니다. 새 태그를 기반으로 합니다. 새 태그에 D와 E를 추가하고 이전 태그에 A와 B를 추가해야 합니다. 삭제
위의 경우 처음에는 이전 태그를 모두 삭제하고 새 태그를 추가하는 것이 좋습니다. 그러나 잘 생각해보면 부적절할 것 같습니다. 삭제 개념이요? 데이터 테이블의 데이터를 삭제할 때 매우 조심스러운 것으로 알고 있습니다. 게다가 프로젝트에서 각 사용자가 여러 개의 태그를 가지고 있을 경우에도 삭제해야 합니까? 즉, 테이블 데이터를 삭제해도 데이터 파일의 크기가 줄어들지 않은 것을 알 수 있습니다. 삭제 작업 후 데이터 파일에 조각이 남아 있기 때문입니다. 따라서 이 방법은 권장되지 않습니다!
그렇다면 이를 순회하여 비교하거나 비교하지 않고 추가하거나 삭제하는 것이 좋습니다. 두 데이터를 모두 순회해야 하고 데이터를 하나씩 비교해야 합니다. 데이터가 적을수록 좋지만, 데이터가 많을수록 좋지 않습니다!
그래서 이번에 생각한 방법은 php 함수를 이용하는 것입니다. array-diff()
예:
1: array_diff (old, new) => [A, B] => 삭제 ( 상태를 비활성화 상태로 수정)
2: array_diff(new, old) => [D,E] => 추가
위의 방법으로 문제가 해결되었나요? 새로운 것 좋지 않나요......
위에서는 PHP array_diff의 응용 프로그램을 소개했으며 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.