php - 如何在循环数组中检查相同或多个值并在 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
)
)
解决方案
使用内置函数array_walk、array_count_values和array_column,您只需要 1 行
array_walk($arr, function(&$elem, $index, $occurrence)
{
$elem['comfirm'] = (int)($occurrence[$elem['title']] > 1);
},
array_count_values(array_column($arr, 'title')));
推荐阅读
- javascript - 从哈希数组返回平均值
- c++ - 检测球体和三角形之间的碰撞
- swift - 使用 Swift 包构建期间来自 IB 的非常奇怪的错误,使用 IBDesignable
- python - 从熊猫数据框中更新一行
- c - 两次对指针变量进行类型转换,为什么?
- sql - 从由特殊字符分隔的字符串数组中删除特定后缀
- docker - 如何在 Cloud Build 中禁用 `docker pull` 输出?
- python - ALTER COLUMN "active" TYPE boolean USING "active"::boolean
- node.js - NodeJs tcp 服务器
- flutter - Flutter 程序之前运行过,没有做任何更改,它不再运行了