使用哪種算法搜索數組中的唯一元素?在數組中搜索唯一元素的算法?
例如數組是:
$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