Ir para conteúdo
Fórum Script Brasil
  • 0

Definir tamanho fixo array


rocha_jl

Pergunta

Preciso carregar as informações de um arquivo xml para um array (isto eu consigo fazer). O problema é que o arquivo xml pode conter 50 registros, mas só posso carregar 20 no array para visualizar na tela via tabela. Como poderia fazer algo assim? Segue código onde não consigo fazer esta limitação:

<?php

$xml = simplexml_load_file("tabela.xml");

echo "<table border=0 cellspacing=0>";

$numCols = 2; // Número de Colunas

$i=0;

foreach($xml as $tabela){

print($i%$numCols==0) ? "<tr>\n" : null;

print( "<td width='15' height='45' background='imagens/fundo_itens.jpg' background-repeat:repeat-x>" . "&nbsp" . "</td>\n" );

print( "<td width='387' height='45' background='imagens/fundo_itens.jpg' background-repeat:repeat-x style='font-size:28px'><strong>" . $tabela->descricao . "</strong></td>\n" );

print( "<td width='75' height='45' background='imagens/fundo_itens.jpg' background-repeat:repeat-x style='font-size:35px' align=right><strong>" . $tabela->preço .'</strong><br/>' . "</td>\n" );

print( "<td width='18' height='45' background='imagens/fundo_itens.jpg' background-repeat:repeat-x>" . "&nbsp" . "</td>\n" );

print($i%$numCols==$numCols-1) ? "</tr>\n" : null;

$i++;

} //fim do foreach

echo "</table>";

?>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Você quer colocar os 20 primeiros?

A melhor maneira é dar 'unset()' nos elementos que você não quer amnter no array.

for($i=20;$i<50;$i++)
       unset($xml[$i]);

Assim, irá manter as posições de 0 até 19 (as 20 primeiras), e as outras não existirão mais.

Editado por mJi
Link para o comentário
Compartilhar em outros sites

  • 0

Me passaram isso também:

<?php

$xml = simplexml_load_file("tabela.xml");

echo "<table border=0 cellspacing=0>";

$numCols = 2; // Número de Colunas

$i=0;

foreach($xml as $tabela){

print($i%$numCols==0) ? "<tr>\n" : null;

print( "<td width='15' height='45' background='imagens/fundo_itens.jpg' background-repeat:repeat-x>" . "&nbsp" . "</td>\n" );

print( "<td width='387' height='45' background='imagens/fundo_itens.jpg' background-repeat:repeat-x style='font-size:28px'><strong>" . $tabela->descricao . "</strong></td>\n" );

print( "<td width='75' height='45' background='imagens/fundo_itens.jpg' background-repeat:repeat-x style='font-size:35px' align=right><strong>" . $tabela->preço .'</strong><br/>' . "</td>\n" );

print( "<td width='18' height='45' background='imagens/fundo_itens.jpg' background-repeat:repeat-x>" . "&nbsp" . "</td>\n" );

print($i%$numCols==$numCols-1) ? "</tr>\n" : null;

if ($i == 19) {

break;

}

$i++;

} //fim do foreach

echo "</table>";

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Também é possível, mas aí serve mais como um 'remendo'. Loops que saem por break geralmente servem para encontrar algo através da variável de controle. Mas este código funcionará corretamente, sim.

Editado por mJi
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...