如何检查数组值是否存在并替换php



My Array:

Array ( [0] => Tuesday [1] => Thursday [2] => Friday [3] => Monday 
[4] => Tuesday [5] => Monday [6] => Tuesday [7] => Wednesday 
)

我想输出数组:

Array ( [0] => Tuesday_1 [1] => Thursday [2] => Friday [3] => Monday_1 
[4] => Tuesday_2 [5] => Monday_2 [6] => Tuesday_3 [7] => Wednesday 
)

谢谢你的帮助。

$arr = [ 'Tuesday', 'Thursday', 'Friday', 'Monday', 'Tuesday', 'Monday', 'Tuesday', 'Wednesday' ];
$dayCounter = array_fill_keys(array_unique($arr), 0);
$multipleOccurrences = array_filter(array_count_values($arr), fn($item) => $item > 1);
$result = array_reduce(
$arr,
function ($carry, $item) use (&$dayCounter, $multipleOccurrences) {
if (array_key_exists($item, $multipleOccurrences)) {
$dayCounter[$item] += 1;
return [ ...$carry, $item . '_' . $dayCounter[$item] ];
} else {
return [ ...$carry, $item ];
}
},
[]
);

最新更新