<?php
$cores = array('#000', '#333', '#666', '#999'); // do tamanho que você precisar $coresPorUsuario = array(); $proxima = 0;
function corUsuario($usuario) {
global $cores;
global $coresPorUsuario;
global $proxima;
// Usuário ainda não existe na array
if(empty($coresPorUsuario[$usuario])) { // Guarda a cor do usuário e avança para a próxima cor disponível
$coresPorUsuario[$usuario] = $cores[$proxima++];
// Se passou da quantidade de cores disponíveis, começa novamente da primeira
$proxima = $proxima == count($cores) ?
0 : $proxima; }
// Retorna a cor do usuário
return $coresPorUsuario[$usuario];
}
echo corUsuario('AA') . "\n";
echo corUsuario('AB') . "\n";
echo corUsuario('AC') . "\n";
echo corUsuario('AA') . "\n";
echo corUsuario('AD') . "\n";
echo corUsuario('AE') . "\n";
PD9waHAKCiRjb3JlcyA9IGFycmF5KCcjMDAwJywgJyMzMzMnLCAnIzY2NicsICcjOTk5Jyk7IC8vIGRvIHRhbWFuaG8gcXVlIHZvY8OqIHByZWNpc2FyCiRjb3Jlc1BvclVzdWFyaW8gPSBhcnJheSgpOwokcHJveGltYSA9IDA7IAoKZnVuY3Rpb24gY29yVXN1YXJpbygkdXN1YXJpbykgewoKICAgIGdsb2JhbCAkY29yZXM7CiAgICBnbG9iYWwgJGNvcmVzUG9yVXN1YXJpbzsKICAgIGdsb2JhbCAkcHJveGltYTsKCiAgICAvLyBVc3XDoXJpbyBhaW5kYSBuw6NvIGV4aXN0ZSBuYSBhcnJheQogICAgaWYoZW1wdHkoJGNvcmVzUG9yVXN1YXJpb1skdXN1YXJpb10pKSB7CiAgICAgICAgLy8gR3VhcmRhIGEgY29yIGRvIHVzdcOhcmlvIGUgYXZhbsOnYSBwYXJhIGEgcHLDs3hpbWEgY29yIGRpc3BvbsOtdmVsCiAgICAgICAgJGNvcmVzUG9yVXN1YXJpb1skdXN1YXJpb10gPSAkY29yZXNbJHByb3hpbWErK107CgogICAgICAgIC8vIFNlIHBhc3NvdSBkYSBxdWFudGlkYWRlIGRlIGNvcmVzIGRpc3BvbsOtdmVpcywgY29tZcOnYSBub3ZhbWVudGUgZGEgcHJpbWVpcmEKICAgICAgICAkcHJveGltYSA9ICRwcm94aW1hID09IGNvdW50KCRjb3JlcykgPyAwIDogJHByb3hpbWE7CiAgICB9CgogICAgLy8gUmV0b3JuYSBhIGNvciBkbyB1c3XDoXJpbwogICAgcmV0dXJuICRjb3Jlc1BvclVzdWFyaW9bJHVzdWFyaW9dOwp9CgplY2hvIGNvclVzdWFyaW8oJ0FBJykgLiAiXG4iOwplY2hvIGNvclVzdWFyaW8oJ0FCJykgLiAiXG4iOwplY2hvIGNvclVzdWFyaW8oJ0FDJykgLiAiXG4iOwplY2hvIGNvclVzdWFyaW8oJ0FBJykgLiAiXG4iOwplY2hvIGNvclVzdWFyaW8oJ0FEJykgLiAiXG4iOwplY2hvIGNvclVzdWFyaW8oJ0FFJykgLiAiXG4iOw==