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

How to check array values exist and replace php

我的阵列:

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 ];
      }
    },
    []
);