php过滤数组值并从多维数组中删除重复项

标签 php multidimensional-array array-unique

大家好,我正在尝试从此数组中找到重复的 x 值并删除它们,只保留唯一的。例如我的数组是

Array
(
[0] => Array
    (
        [x] => 0.5
        [y] => 23
    )

[1] => Array
    (
        [x] => 23
        [y] => 21.75
    )

[2] => Array
    (
        [x] => 14.25
        [y] => 21.875
    )

[3] => Array
    (
        [x] => 19.375
        [y] => 21.75
    )

[4] => Array
    (
        [x] => 9.125
        [y] => 21.875
    )

[5] => Array
    (
        [x] => 23
        [y] => 19.625
    )

[6] => Array
    (
        [x] => 19.375
        [y] => 19.625
    ) 
)

所以我需要做的是循环遍历整个事物并看到第一个 x 值为 .5 然后继续并将 x 为 .5 的任何其他内容从数组中删除它以便最后我有一个看起来像像这样

 Array
   (
[0] => Array
    (
        [x] => 0.5
        [y] => 23
    )

[1] => Array
    (
        [x] => 23
        [y] => 21.75
    )

[2] => Array
    (
        [x] => 14.25
        [y] => 21.875
    )

[3] => Array
    (
        [x] => 19.375
        [y] => 21.75
    )

[4] => Array
    (
        [x] => 9.125
        [y] => 21.875
    )
)

其中所有 X 值都是唯一的。我在网上搜索并发现可以使用此功能,但这似乎不起作用:

 $result = array_map("unserialize", array_unique(array_map("serialize", $array)));    

最佳答案

只需遍历并找到唯一值即可:

$taken = array();

foreach($items as $key => $item) {
    if(!in_array($item['x'], $taken)) {
        $taken[] = $item['x'];
    } else {
        unset($items[$key]);
    }
}

每次第一次使用 x 值时,我们都会保存它 - 随后的使用会从数组中取消设置

关于php过滤数组值并从多维数组中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22001121/

相关文章:

php - 在 YII 中使用 ExtJS

python - numpy数组切片,从每个第三维获取一个

php - php中如何获取数组中的唯一值?

php - array_unique 在 php 中未按预期工作

php - 内容聚合服务策略

php - (PHP) : Warning: include_once, 无法打开流:权限被拒绝

php - 使用 codeigniter 在 Twitter Bootstrap 模式中填充表单

java - 如何返回多维数组作为 JUnit 测试的参数集合?

php - PHP 中内爆函数的可能限制