gpt4 book ai didi

php - 在数组中查找非重复元素

转载 作者:行者123 更新时间:2023-12-04 00:31:04 25 4
gpt4 key购买 nike

我的数组是:

$array= array(4,3,4,3,1,2,1);


我想将其输出如下:

Output = 2 


(因为2仅出现一次)

这是我尝试过的:

$array = array(4, 3, 4, 3, 1, 2, 1);
$array1 = array(4, 3, 4, 3, 1, 2, 1);
$array_diff = array_diff($array, $array1);

最佳答案

单线无循环:(Demo

var_export(array_keys(array_intersect(array_count_values($array),[1])));


细目:

array_keys(                          // return the remaining keys from array_count_values 
array_intersect( // filter the first array by second
array_count_values($array), // count number of occurrences of each value
[1] // identify the number of occurrences to keep
)
)


如果您(或任何将来的读者)想要保留更多值,请替换 array_intersect()中的第二个参数/数组。
例如:
您想保留1,2和3: array(1,2,3)[1,2,3]

ps。为了便于记录,您可以将 array_filter()与自定义函数一起使用,以忽略所有非1计数值,但是我使用了 array_intersect(),因为语法更简短并且IMO更易于阅读。



ps。以为我会重新访问并包括PHP7.4技术,并与其他基于函数的技术进行比较...

代码:( Demo

$numbers = [4, 3, 4, 3, 1, 2, 1];
var_export(
array_keys(
array_intersect(
array_count_values($numbers),
[1]
)
)
);

echo "\n---\n";
var_export(
array_keys(
array_filter(
array_count_values($numbers),
function($count) {
return $count === 1;
}
)
)
);

echo "\n---\n";
// PHP7.4+
var_export(
array_keys(
array_filter(
array_count_values($numbers),
fn($count) => $count === 1
)
)
);

关于php - 在数组中查找非重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43015438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com