fork(2) download
  1. <?php
  2.  
  3. $cores = array('#000', '#333', '#666', '#999'); // do tamanho que você precisar
  4. $coresPorUsuario = array();
  5. $proxima = 0;
  6.  
  7. function corUsuario($usuario) {
  8.  
  9. global $cores;
  10. global $coresPorUsuario;
  11. global $proxima;
  12.  
  13. // Usuário ainda não existe na array
  14. if(empty($coresPorUsuario[$usuario])) {
  15. // Guarda a cor do usuário e avança para a próxima cor disponível
  16. $coresPorUsuario[$usuario] = $cores[$proxima++];
  17.  
  18. // Se passou da quantidade de cores disponíveis, começa novamente da primeira
  19. $proxima = $proxima == count($cores) ? 0 : $proxima;
  20. }
  21.  
  22. // Retorna a cor do usuário
  23. return $coresPorUsuario[$usuario];
  24. }
  25.  
  26. echo corUsuario('AA') . "\n";
  27. echo corUsuario('AB') . "\n";
  28. echo corUsuario('AC') . "\n";
  29. echo corUsuario('AA') . "\n";
  30. echo corUsuario('AD') . "\n";
  31. echo corUsuario('AE') . "\n";
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
#000
#333
#666
#000
#999
#000