【问题标题】:Detect Array duplicate on PHP在 PHP 上检测数组重复
【发布时间】:2019-01-26 05:22:59
【问题描述】:

我想打印重复的数组,例如:

$input = ['a', 'a', 'b'];
$output = array_unique($input);
echo $output;

我在php在线运行代码,但输出就像这样..

Array

如何回显“A”,因为“A”是上面数组中的重复字母?

【问题讨论】:

标签: php


【解决方案1】:

您的代码有效,只是无法使用“echo”语句打印整个数组。如所写,您可以打印 $output 的各个元素(例如 echo $output[0]; 或 echo $output[1];)。如果要打印整个数组,请使用 print_r($output);或 var_dump($output);

【讨论】:

    【解决方案2】:

    Array_unique 不会为您提供该信息,它只会删除重复项。
    如果您使用 array_count_values 计算值,然后使用 array_diff 得到 不是 1,那么代码将返回重复的项目。
    但它会以键的形式返回它们,所以使用 array_keys 将它们作为值获取。

    $input = ['a', 'a', 'b'];
    $count = array_count_values($input);
    $duplicated = array_keys(array_diff($count, [1]));
    var_export($duplicated);
    

    https://3v4l.org/2HS8e

    您还可以使用以下命令回显重复项:

    echo implode(", ", $duplicated);
    

    【讨论】:

      【解决方案3】:

      只需使用array_diffarray_diff_assoc 来计算两个数组。 (在使用array_unique 删除重复之前和之后)

      例子:

      $array = ['a','b','c'];
      $array2 = $array;
      
      echo "<pre>";
      var_dump($array);
      echo "</pre>";
      
      $array = array_unique($array);
      $diff = array_diff_assoc($array2,$array);
      
      echo '<hr>Diff : ';
      echo "<pre>";
      var_dump($diff);
      echo "</pre>";
      exit();
      

      在此处查看结果。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 2018-05-25
      • 2022-06-10
      • 2013-01-03
      • 1970-01-01
      • 2013-10-15
      相关资源
      最近更新 更多