2015-09-07 14 views
-3

我正在嘗試創建聊天系統。 我有一組不同用戶的消息。 我想爲不同的用戶設置不同的顏色。 顏色在另一個陣列中定義。如何爲羣組聊天中的不同用戶從預先定義的顏色列表中分配不同顏色的頭像圖標?

假設我有5種顏色,10位用戶& 20條消息。

現在,什麼是在不同的用戶消息在PHP中設置不同顏色的最佳方式?

在此先感謝。

更新

enter image description here

的圖像從網上搜集。 我正在嘗試爲羣聊中的用戶設置不同的顏色頭像而不是圖片。

+1

如果你只有5種顏色和10個用戶,你將需要更多的顏色...... – MaggsWeb

+0

你只需要一個將用戶映射到顏色的數組,然後排序 – colmde

+1

顏色的含義是什麼?如果顏色沒有意義,可以使用rand()爲用戶獲取隨機顏色。 –

回答

2

這將不分配從1開始的顏色,但使用各自的用戶名來選擇一種顏色,並保持它:

<?php 
$color_array = array('red', 'blue', 'green', 'orange', 'yellow'); 
$color_count = count($color_array); 
$user_name = "Stephan B"; 
$color_index = crc32($user_name) % $color_count; 
$user_color = $color_array[$color_index]; 
echo "Color for user '$user_name' is '$user_color'."; 
// Color for user 'Stephan B' is 'orange'. 
?> 

此計算在用戶名的校驗和截斷到的顏色數陣列。如果可用,您可以使用IP甚至電子郵件地址來獲取顏色,然後他們可以更改他們的名字,但不是他們的顏色。

這與gravatar方法相當。

+0

謝謝@Stephan B.這是一個非常好的方法。我正在嘗試這個。 – CoderBoy

+0

它的工作完美。只是一點點改變。這是給array_key&必須設置該鍵的顏色。 – CoderBoy