首页 > 解决方案 > 如何在循环数组中检查相同或多个值并在 php 上创建新键作为微分器

问题描述

我想检查循环数组中的值是否相同或多个,还有else条件。我应该做什么样的条件?

在我制作的数组中 [title] => Kue Lapis 有两个 [title] => Kue Nastar 只有一个

我发现了同样的问题,但我想从中得到不同的结果。

如果值相同或多于一个,我想要什么,它将创建一个新键为 [confirm] = true,如果不是,则键 [confirm] = false

这是我的数组

Array
(
    [0] => Array
        (
            [order] => 127
            [title] => Kue Nastar
        )

    [1] => Array
        (
            [order] => 128
            [title] => Kue Lapis
        )

    [2] => Array
        (
            [order] => 129
            [title] => Kue Lapis
        )
)

我想要这个结果

Array
(
    [0] => Array
        (
            [order] => 127
            [title] => Kue Nastar
            [comfirm] => 0
        )

    [1] => Array
        (
            [order] => 128
            [title] => Kue Lapis
            [comfirm] => 1
        )

    [2] => Array
        (
            [order] => 129
            [title] => Kue Lapis
            [comfirm] => 1

        )
)

标签: phparrays

解决方案


使用内置函数array_walkarray_count_valuesarray_column,您只需要 1 行

array_walk($arr, function(&$elem, $index, $occurrence)
{
    $elem['comfirm'] = (int)($occurrence[$elem['title']] > 1);
},
array_count_values(array_column($arr, 'title')));

推荐阅读