Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mruoppolo

Ordenar arrays multidimentsionais

Recommended Posts

Nossa, agora que eu consegui entender. :o :o

<?php 

$array = array( 2, 1, 20, 12, 45, 9 );

var_dump( $array );

asort( $array );

var_dump( $array );

Use asort :ph34r:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera descobri o que esta dando errado aqui, agora com o asort() funcionou o problema é que eu preciso printar um resultado por td e o que aconteceu eu coloquei tudo isso dentro de um foreach, acontece que esse foreach vai pegar a variável $i e incrementar o valor e isso esta fazendo com que os indices do array voltem para a posição antes de ordenar.

Ou seja eu preciso reordenar incluindo os indices, porque caso contrario não vou conseguir fazer isso funcionar no foreach, entendeu??

Da uma olhada no código:

<table class="table table-hover table-bordered">
	<thead>
		<th>Concurso</th>
		<th>Data</th>
		<th colspan="15">Resultado</th>
	</thead>
	<tbody>
		<tr>
			<td><?php echo $jsonObj['NumeroConcurso']; ?></td>
			<td><?php echo date('d/m/Y', strtotime($jsonObj['Data'])); ?></td>
			<?php
				$numSorteado = $jsonObj['Sorteios']['0']['Numeros'];
				asort( $numSorteado );
				for ($i=0; $i<=14; $i++) {

				switch ($numSorteado[$i]) {
					case '5':
						$class = " class='danger'";
						break;
					case '6':
						$class = " class='danger'";
						break;
					case '7':
						$class = " class='danger'";
						break;
					case '12':
						$class = " class='danger'";
						break;
					case '13':
						$class = " class='danger'";
						break;
					case '14':
						$class = " class='danger'";
						break;
					case '19':
						$class = " class='danger'";
						break;
					case '20':
						$class = " class='danger'";
						break;
					case '21':
						$class = " class='danger'";
						break;
					
					default:
						$class = "";
						break;
				}

				echo "<td".$class.">".$numSorteado[$i]."</td>";
				}
			?>
		</tr>
	</tbody>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

então voce pode diminuir tudo isso ae e fazer isso

$numSorteado = $jsonObj['Sorteios']['0']['Numeros'];
asort( $numSorteado );

foreach ($numSorteado as $v) {

	$arrayNum = array(5,6,7,12,13,14,19,20,21);

	if (in_array($v, $arrayNum)) {
		$class = " class='danger'";
	} else {
		$class = "";
	}

	echo "<td".$class.">".$v."</td>";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.