【发布时间】:2019-05-20 23:54:06
【问题描述】:
我有一个数组
$info = array(
[0] => array(
'id' => 1,
'uid' => '677674e21aed487fd7180da4a7619a9d'
),
[1] => array(
'id' => 1,
'uid' => 'd3c98a10fe4e42fb1fe868008c0f4cc1'
),
[2] => array(
'id' => 1,
'uid' => 'd3c98a10fe4e42fb1fe868008c0f4cc1'
),
[3] => array(
'id' => 1,
'uid' => '658284e5395a29bf34d21f30a854e965'
),
[4] => array(
'id' => 1,
'uid' => '01f33ae45a463e0c1de4ad989b3ccad5'
),
[5] => array(
'id' => 1,
'uid' => '677674e21aed487fd7180da4a7619a9d'
)
)
如您所见,第 0 个索引和第 5 个索引的 uid 相同。同样,第二个索引和第三个索引的 uid 相同。
我想要一个 PHP 脚本,通过它我可以为重复的 uid 随机创建一个十六进制颜色代码。说这样的话。
$info = array(
[0] => array(
'id' => 1,
'uid' => '677674e21aed487fd7180da4a7619a9d',
'col' => 'black'
),
[1] => array(
'id' => 1,
'uid' => 'd3c98a10fe4e42fb1fe868008c0f4cc1',
'col' => 'green'
),
[2] => array(
'id' => 1,
'uid' => 'd3c98a10fe4e42fb1fe868008c0f4cc1',
'col' => 'green'
),
[3] => array(
'id' => 1,
'uid' => '658284e5395a29bf34d21f30a854e965'
),
[4] => array(
'id' => 1,
'uid' => '01f33ae45a463e0c1de4ad989b3ccad5'
),
[5] => array(
'id' => 1,
'uid' => '677674e21aed487fd7180da4a7619a9d',
'col' => 'black'
)
)
我怎样才能以最短的执行时间做到这一点?
【问题讨论】:
-
我很确定你真的应该知道如何在 StackOverflow 上提问。您能否展示您尝试过的示例代码?
-
你可以使用
array_count_values()如果返回 > 1 则推入数组 -
您是否已经有任何代码,或者您正在寻找其他人为您完成这项工作?
-
最快的方法是提取
uids,使它们成为另一个数组的键,然后遍历第一个数组并在uids 多次遇到时添加颜色。这将需要 2 次遍历源数组。