Salve salve !!!

Vou fazer uma tentativa.. desafiozinho simples.. qndo eu tiver umas 3 respostas(certas ou não), eu divulgo a minha solução.(podem continuar enviando as suas contribuições, mesmo que eu já tenha colocado a minha).

Resolva com 2 loops. Se conseguir, resolva com um único loop.

O desafio, é gerar o resultado abaixo(na imagem), usando php(seu php vai gerar algum html).

Podem me enviar o código pelo www.pastebin.com, aqui pelos comentários do blog mesmo.

é isso!

O melhor algorítmo(mais elegante) vence.

Boa Sorte!

.

.

.

.

.

.

.

.

.

.

.

.

.

Minha solução com 2 loops encaixados:

<style type="text/css">
#grid td {
	width: 25px;
	height: 25px;
	text-align: center;
}
#grid td.diagonal {
	background: #000;
	color: #f00;
}
</style>
<table id="grid">
<?php
	for( $i=1; $i<10; $i++ )
	{
		echo '<tr>';
		for( $j=1; $j<10; $j++ )
		{
			$class = $i==$j || $i+$j==10 ? ' class="diagonal"' : '';
			$text = $i==5 || $j==5 ? '+' : '-';

			echo '<td'.$class.'>'.$text.'</td>';
		}
		echo '</tr>';
	}

?>
</table>

Agora, resolvam com um único loop!

Com 2 encaixados é fácil ne?!

Mesma imagem, mesmas regras. Consegue ?

Minha solução com apenas um único loop

<style type="text/css">
#grid td {
	width: 25px;
	height: 25px;
	text-align: center;
}
#grid td.diagonal {
	background: #000;
	color: #f00;
}
</style>
<table id="grid">
<tr>
<?php
	$j = 1;
	$k = 1;
	for( $i=0; $i<81; $i++ )
	{
		$ctrl = $i!=0 && $i%9==0;
		if( $ctrl ) echo '</tr>'.PHP_EOL.'<tr>'.PHP_EOL;

		$class = $j==$k || $j+$k==10 ? ' class="diagonal"' : '';
		$text = $j==5 || $k==5 ? '+' : '-';

		echo "\t".'<td'.$class.'>'.$text.'</td>'.PHP_EOL;

		$j = $j>=9 ? 1 : $j+1;
		$k = $j==1 ? $k+1 : $k;
	}
?>
</tr>
</table>