php的数组怎么去重复

worktile 其他 396

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,有多种方法可以去除数组中的重复元素。下面我们将介绍三种常见的方法。

    方法一:使用array_unique函数
    array_unique函数可以去除数组中的重复元素,并返回一个新的数组。该函数会保留数组中的第一个出现的元素,而将后续出现的相同元素删除。

    示例代码如下:
    “`
    $array = array(‘a’, ‘b’, ‘c’, ‘a’, ‘b’, ‘c’);
    $newArray = array_unique($array);

    print_r($newArray);
    “`

    输出结果为:
    “`
    Array
    (
    [0] => a
    [1] => b
    [2] => c
    )
    “`

    方法二:使用循环遍历
    可以使用循环遍历数组,并通过判断元素是否已经存在于新数组中来去除重复元素。

    示例代码如下:
    “`
    $array = array(‘a’, ‘b’, ‘c’, ‘a’, ‘b’, ‘c’);
    $newArray = array();

    foreach ($array as $value) {
    if (!in_array($value, $newArray)) {
    $newArray[] = $value;
    }
    }

    print_r($newArray);
    “`

    输出结果为:
    “`
    Array
    (
    [0] => a
    [1] => b
    [2] => c
    )
    “`

    方法三:使用array_flip和array_values函数
    可以使用array_flip函数将数组的键值对调,然后再使用array_values函数重新索引数组的键,从而去除重复元素。

    示例代码如下:
    “`
    $array = array(‘a’, ‘b’, ‘c’, ‘a’, ‘b’, ‘c’);
    $newArray = array_values(array_flip($array));

    print_r($newArray);
    “`

    输出结果为:
    “`
    Array
    (
    [0] => a
    [1] => b
    [2] => c
    )
    “`

    以上就是在PHP中去除数组中重复元素的三种常见方法。您可以根据具体需求选择适合的方法来处理重复元素。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    PHP中可以使用array_unique()函数来去除数组中的重复元素。该函数将返回一个新数组,其中只包含原数组中的唯一元素。下面是一些使用array_unique()函数去重复的示例:

    1. 基本用法:
    “`
    $array = [1, 2, 3, 4, 4, 5, 6, 6];
    $uniqueArray = array_unique($array);
    print_r($uniqueArray);
    “`
    输出:
    “`
    Array
    (
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [5] => 5
    [6] => 6
    )
    “`

    2. 关联数组去重:
    “`
    $array = [‘name’ => ‘John’, ‘age’ => 25, ‘name’ => ‘John’, ‘country’ => ‘USA’];
    $uniqueArray = array_unique($array);
    print_r($uniqueArray);
    “`
    输出:
    “`
    Array
    (
    [name] => John
    [age] => 25
    [country] => USA
    )
    “`
    注意:关联数组的去重是根据键名进行的,而不是根据键值。

    3. 二维数组去重:
    “`
    $array = [
    [‘name’ => ‘John’, ‘age’ => 25],
    [‘name’ => ‘John’, ‘age’ => 25],
    [‘name’ => ‘Mary’, ‘age’ => 30],
    ];
    $uniqueArray = array_map(‘unserialize’, array_unique(array_map(‘serialize’, $array)));
    print_r($uniqueArray);
    “`
    输出:
    “`
    Array
    (
    [0] => Array
    (
    [name] => John
    [age] => 25
    )
    [2] => Array
    (
    [name] => Mary
    [age] => 30
    )
    )
    “`
    注意:对于二维数组的去重,我们需要使用serialize()和unserialize()函数先将每个元素序列化成字符串,然后应用array_unique()函数进行去重,最后再将序列化的字符串转回为数组。

    4. 字符串数组去重:
    “`
    $array = [‘apple’, ‘banana’, ‘apple’, ‘orange’, ‘banana’];
    $uniqueArray = array_keys(array_flip($array));
    print_r($uniqueArray);
    “`
    输出:
    “`
    Array
    (
    [0] => apple
    [1] => banana
    [2] => orange
    )
    “`
    通过将数组的值作为键创建一个新数组,然后再使用array_keys()函数获取新数组的键,即可得到去重后的数组。

    5. 自定义去重:
    “`
    $array = [1, 2, 3, 4, 4, 5, 6, 6];
    $uniqueArray = [];
    foreach ($array as $value) {
    if (!in_array($value, $uniqueArray)) {
    $uniqueArray[] = $value;
    }
    }
    print_r($uniqueArray);
    “`
    输出与示例1相同。

    以上是一些常用的方法来去重PHP数组。根据具体的需求和应用场景,选择合适的方法进行去重操作。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在PHP中去重复数组可以使用array_unique()函数。array_unique()函数会返回一个去重后的数组,即移除了原数组中的重复元素。

    下面是使用array_unique()函数去重复数组的方法和操作流程:

    1. 创建一个包含重复元素的数组。

    “`php
    $array = array(1, 2, 2, 3, 4, 4, 5);
    “`

    2. 使用array_unique()函数去重复数组。

    “`php
    $uniqueArray = array_unique($array);
    “`

    3. 打印去重后的数组。

    “`php
    print_r($uniqueArray);
    “`

    此时输出为:

    “`
    Array
    (
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
    )
    “`

    可以看到,数组中的重复元素已经被移除了,只保留了一个副本。

    另外,array_unique()函数默认是使用全等比较运算符(===)进行元素比较,也就是说要求元素的值和类型都相等才会被视为重复。如果要进行松散比较,可以使用array_unique($array, SORT_REGULAR)来指定比较模式。

    例如,对于以下数组:

    “`php
    $array = array(1, ‘1’, 2, ‘2’, 3, ‘3’);
    “`

    如果使用默认的全等比较模式:

    “`php
    $uniqueArray = array_unique($array);
    “`

    则输出为:

    “`
    Array
    (
    [0] => 1
    [2] => 2
    [4] => 3
    )
    “`

    可以看到,虽然1和’1’的值相等,但类型不同,所以被保留了两个。

    如果使用松散比较模式:

    “`php
    $uniqueArray = array_unique($array, SORT_REGULAR);
    “`

    则输出为:

    “`
    Array
    (
    [0] => 1
    [2] => 2
    [4] => 3
    )
    “`

    这次1和’1’被视为相同的元素,只保留了一个。

    综上所述,使用array_unique()函数可以很方便地去重复PHP数组,而且还可以指定比较模式来满足不同的需求。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部