在PHP上检测数组重复

时间:2019-01-26 05:22:59

标签: php

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

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

我在php中在线运行代码,但输出如下。

Array

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

Array_unique不会为您提供该信息,只会删除重复项。
如果您使用array_count_values对值进行计数,然后使用array_diff获得 not 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);

答案 2 :(得分:0)

只需使用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();

在这里查看结果。

enter image description here