>  기사  >  백엔드 개발  >  PHP 배열을 중복 제거할 때 중복 요소를 제거하기 위한 기준을 지정합니다.

PHP 배열을 중복 제거할 때 중복 요소를 제거하기 위한 기준을 지정합니다.

WBOY
WBOY원래의
2024-04-28 22:48:02886검색

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

PHP 数组去重时指定去除重复元素的依据

PHP array_unique() 함수를 사용하여 중복 제거 기준을 지정하세요

Introduction

_unique() 이 함수는 배열에서 중복 요소를 제거하는 데 사용됩니다. 기본적으로 중복 요소를 결정하기 위해 엄격한 동등성(===)을 사용합니다. 그러나 중복 제거 기준을 지정하는 사용자 정의 비교 기능을 제공함으로써 다양한 기준에 따라 중복 요소를 제거할 수 있습니다. _unique() 函数用于从一个数组中去除重复元素。默认情况下,它使用严格相等 (===) 来判定重复元素。但是,我们可以通过提供一个自定比较函数来指定去重依据,从而根据不同的标准去除重复元素。

代码示例

<?php

// 创建一个包含重复元素的数组
$arr = array(
    'a', 'b', 'c', 'd',
    'a', 'c', 'e', 'f'
);

// 使用默认的严格相等比较器去除重复元素
print_r(array_unique($arr));

// 自定比较器,根据元素长度去除重复元素
$length_comparator = function($a, $b) {
    return strlen($a) == strlen($b);
};

// 使用自定比较器去除重复元素
print_r(array_unique($arr, SORT_REGULAR, $length_comparator));

?>

输出结果

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)
Array
(
    [0] => a
    [1] => b
    [2] => c
    [4] => d
    [6] => e
)

实战案例

假设我们有一个学生对象的数组,每个对象都有一个名字和年龄。我们可以使用 _unique()

코드 예

<?php

class Student {
    public $name;
    public $age;
}

// 创建一个包含具有相同年龄的学生对象的数组
$students = array(
    new Student('Alice', 20),
    new Student('Bob', 20),
    new Student('Carol', 21),
    new Student('Dave', 21),
);

// 自定比较器,根据学生的年龄去除重复元素
$age_comparator = function($a, $b) {
    return $a->age == $b->age;
};

// 使用自定比较器去除重复元素
$unique_students = array_unique($students, SORT_REGULAR, $age_comparator);

// 打印唯一学生的姓名
foreach ($unique_students as $student) {
    echo $student->name . '<br>';
}

?>

🎜출력 결과🎜🎜
Alice
Carol
🎜🎜실제 사례🎜🎜🎜학생 개체 배열이 있고 각 개체에는 이름과 나이가 있다고 가정합니다. _unique() 함수와 사용자 정의 비교기를 사용하여 동일한 연령의 학생을 제거할 수 있습니다. 🎜rrreee🎜🎜출력 결과🎜🎜rrreee

위 내용은 PHP 배열을 중복 제거할 때 중복 요소를 제거하기 위한 기준을 지정합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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