我正在尝试获取所有数组元素,其中值仅在数组中出现一次.
我试着用:
array_unique($array);
Run Code Online (Sandbox Code Playgroud)
但这只会删除重复项,这不是我想要的.
举个例子:
$array = 0 => 1
1 => 2
2 => 3
3 => 4
4 => 5
5 => 2
6 => 3
7 => 4
8 => 5
Run Code Online (Sandbox Code Playgroud)
预期产量:
array(
0=>1
)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,只有值1在数组中出现一次,所有其他值在数组中不止一次.所以我只想保留那一个元素.
这应该适合你:
首先用于array_count_values()计算数组中每个值的次数.这将返回如下内容:
Array (
[1] => 1
[2] => 2
[3] => 2
[4] => 2
[5] => 2
// ? ?
// Value Amount
)
Run Code Online (Sandbox Code Playgroud)
之后,您可以使用array_filter()仅获取值,这些值在数组中出现一次.手段:
Array (
[1] => 1
[2] => 2
[3] => 2
[4] => 2
[5] => 2
)
最后,只需使用array_keys()从原始数组中获取值.
码:
<?php
$arr = [1,2,3,4,5,2,3,4,5];
$result = array_keys(array_filter(array_count_values($arr), function($v){
return $v == 1;
}));
print_r($result);
?>
Run Code Online (Sandbox Code Playgroud)
输出:
Array (
[0] => 1
)
Run Code Online (Sandbox Code Playgroud)