【问题标题】:Unset one duplicate value in array PHP取消设置数组 PHP 中的一个重复值
【发布时间】:2014-09-29 03:28:03
【问题描述】:

我有 2 个数组:Array1 和 Array2。正如您在 Array1 中看到的,我有 2 个重复值。所以我想要做的是取消设置重复项之一(无论哪个都无所谓),因此我需要使用与 Array1 中已取消设置的值相同的键从 Array2 取消设置值

Array1
(
    [0] => 1331-14-2-45
    [1] => 1344-1-4-22
    **[2] => 1409-1-1-4**
    [4] => 1312-14-1-23
    **[5] => 1409-1-1-4**
    [6] => 1365-10-3-30
)

Array2
(
    [0] => opticalSignalLevelTooLow1490nm#nemodel.GPON.4.6
    [1] => opticalSignalLevelTooLow1490nm#nemodel.GPON.4.6
    [2] => opticalSignalLevelTooLow1490nm#nemodel.GPON.4.6
    [4] => deviceNotActive#nemodel.GPON.4.6
    [5] => deviceNotActive#nemodel.GPON.4.6
    [6] => opticalSignalLevelTooLow1490nm#nemodel.GPON.4.6
)

【问题讨论】:

    标签: php arrays


    【解决方案1】:
    <?php
    $array1 = array
    (
        0 => '1331-14-2-45',
        1 => '1344-1-4-22',
        2 => '1409-1-1-4',
        4 => '1312-14-1-23',
        5 => '1409-1-1-4',
        6 => '1365-10-3-30',
    );
    $array1_tmp = $array1;
    $array2 = array
    (
        0 => 'opticalSignalLevelTooLow1490nm#nemodel.GPON.4.6',
        1 => 'opticalSignalLevelTooLow1490nm#nemodel.GPON.4.6',
        2 => 'opticalSignalLevelTooLow1490nm#nemodel.GPON.4.6',
        4 => 'deviceNotActive#nemodel.GPON.4.6',
        5 => 'deviceNotActive#nemodel.GPON.4.6',
        6 => 'opticalSignalLevelTooLow1490nm#nemodel.GPON.4.6',
    );
    $array1 = array_unique($array1);
    $remove_keys = array_keys(array_diff_key($array1_tmp, $array1));
    foreach($remove_keys as $k => $v) {
        unset($array2[$v]);
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用array_unique() 函数,或者看看Array functions list

      【讨论】:

        【解决方案3】:

        使用array_unique函数和array_diff

        $uniqueValues = array_unique($inputArray);               //your  first array
        $deletedValues = array_diff($inputArray, $uniqueValues);
        
        foreach($deletedValues as $key => $deletedValue){
             unset($secondIput[$key]);                           //you second array
        }
        

        【讨论】:

          猜你喜欢
          • 2013-11-10
          • 2018-10-27
          • 2015-02-01
          • 1970-01-01
          • 2017-10-17
          • 2011-01-01
          • 2021-12-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多