Bunte Kästchen!

Hi,

dann generiere dir doch so viele Farbcodes wie du brauchst. ;)

PHP:
$anzahl = 16;
$codes = array();
for ($i = 0; $i < $anzahl; $i++) {
  $codes[$i] = rand(0, 0xFFFFFF);
}

Best regards
 
Wäre es nicht evtl. besser pro Farbcode 3 Werte zu generieren und diese dann zum Farbcode zusammenzusetzen?

In etwa so
PHP:
$anzahl = 16;
$codes = array();
for ($i = 0; $i < $anzahl; $i++) {
	$codes[$i] = "";
	while(strlen($codes[$i]) < 6){
		$foo = dechex(rand(0, 0xFF));
		$codes[$i].= ( ( strlen( $foo ) < 2 ) ? '0' : '' ) . $foo;
	}
}
 
So leute ich habs :
HTML:
<html>
	<head>
		<title>Kunstwerk</title>
			<link rel="stylesheet" type="text/css" href="style1.css">
	</head>
<body>
	
	<div class = "matrix">
		<?php
		for($z=0; $z<4; $z++)
		{
			?><div class="reihe"><?php
			
				for ($s=0; $s<5; $s++)
				{
					$r = dechex(rand(0,255));
					$g = dechex(rand(0,255));
					$b = dechex(rand(0,255));
					
					$r = (strlen($r) == 1) ? "0{$r}" : $r;
					$g = (strlen($g) == 1) ? "0{$g}" : $g;
					$b = (strlen($b) == 1) ? "0{$b}" : $b;
					
					$farbe = $r.$g.$b;
					
					$border = $b.$g.$r;
					
					?><div class = "kasten" style="background-color:#<?php echo $farbe;?>; border: 10px solid #<?php echo $border;?>;"></div><?php
				}
			
			?></div><?php
		}
		?>
	</div>
</body>
</html>

Code:
.matrix {
}

.reihe {
	clear: both;
}

.kasten {
	width: 100px;
	height: 100px;
	float: left;
	margin: 5px;
}
 
Das ist aber eine 4x5 Matrix.
Um mal auf Post #8 zurückzukommen : warum hast du da 5 Werte wenn du nur 4x4 willst ? Logikfehler oder kannst du nicht damit umgehen das Arrays bei 0 anstatt bei 1 beginnen ?
 
Dann hätte man allerdings eine weitere Schleife. Die Ausgabe bei meiner Variante könnte man so gestalten:

PHP:
echo sprintf('%06X', $codes[$i]);

Könnte man, deine Codes zusammengefügt ergeben aber zumindest bei mir folgendes, relativ Blau-loses Ergebnis:
PHP:
$anzahl = 16;
$codes = array();
for ($i = 0; $i < $anzahl; $i++) {
  $codes[$i] = rand(0, 0xFFFFFF);
  echo sprintf('%06X', $codes[$i])."<br />"; 
}  
/*
B8E600
2E6000
5F5200
F25C00
999E00
ECB800
3ACA00
F47400
CDD600
389000
55C200
000C00
0D8E00
69E800
283A00
2D2400
*/

Hab daran auch etwas rumgefuddelt um mal andere Ergebnisse zu erzeugen, allerdings mit relativ wenig Erfolg. Irgendwo hatte ich letztendlich immer eine 0... Den Ansatz finde ich allerdings knorke!
 
Zurück