使用哪种算法搜索数组中的唯一元素?在数组中搜索唯一元素的算法?
例如数组是:
$arr = [
["date" => "2015/04/05",
"country" => "UK",
"number" => 3],
["date" => "2015/04/05",
"country" => "UK",
"number" => 3],
["date" => "2015/04/05",
"country" => "UK",
"number" => 3],
["date" => "2015/04/05",
"country" => "UK",
"number" => 4],
];
所以,我需要算多少具有独特number
元素?
在结果,我应该得到以下结构:
["UK" => array("total" => "2")]
凡total
是在阵列的独特number
数。
我试着为:
$output = [];
foreach ($arr as $k => $value) {
$output[
$value[
"country"
]][$value["date"]][$value["number"]
] = true;
}
foreach ($output as $k => $v) {
foreach ($v as $c => $t) {
$arr[$k][$c] = count($t);
}
}
但这个代码看起来那么可怕,随着循环。此外,我认为有一个微不足道的算法来解决这些问题。
如果代码工作,也许这是更适合的代码审查 – FirstOne
代码的工作,但我不喜欢它 – Blablacar
我投票关闭(?)这个问题作为题外话,因为它更适合在另一个网站,例如https://codereview.stackexchange.com/ – Qirel