嘗試從數組中隨機獲取一個項目($colors
),而沒有兩個相同的顏色相鄰。從數組中的無序元素沒有兄弟姐妹
<div class="list">
<?php
foreach ($team as $member):
$index++;
?>
<div class="member location-<?php echo strtolower($member->location); ?>">
<a style="background: #FFF url('<?php echo $member->profileImage; ?>') no-repeat;" data-start-date="<?php echo $member->startDate; ?>">
<?php shuffle($colors); // Shuffle the array ?>
<span class="name" style="background-color: #<?php echo array_pop($colors)->color; ?>"><?php echo $member->name; ?></span>
<span class="job-title"><span class="text"><?php echo $member->jobTitle; ?></span></span>
</a>
</div>
<?php endforeach; ?>
</div>
現在我有一些情況,當我得到一個顏色相鄰的顏色。
我如何獲得每次不同的顏色?我想提一下count($team) > count($colors)
(更大)。
UPDATE:
$顏色看起來像(我剛剛印刷3項,計數較高)
array(18) {
[0]=>
object(stdClass)#112 (1) {
["color"]=>
string(6) "5ebedb"
}
[1]=>
object(stdClass)#111 (1) {
["color"]=>
string(6) "c75d40"
}
[2]=>
object(stdClass)#110 (1) {
["color"]=>
string(6) "faaf37"
}
}
所以它真的不是隨機的;) –
,你可以在foreach洗牌之前只有一次collors的陣列,也是一個問題你的數組$顏色具有不同的顏色或者有一些人不止一次? – knetsi
總會有一些情況下,你有顏色相鄰,你現在做事的方式。無論如何,這是一個有趣的問題。我們應該從「相同顏色」(我們在相同的色調範圍內談話?)中理解什麼?你需要某種方式來告訴兩種顏色何時「不一樣」。 – Andrew