Stack Overflow em Português Asked by Marcos Vinicius on December 22, 2020
Estou fazendo este código que tem 2 foreach’s e carrega 350 imóveis com mais ou menos 3500 links de imagens, na verdade não chamei as fotos, só os links, isso tudo carrega em meio segundo.
A variável $array
armazena conteúdo de um XML. Dentro desse XML tem várias informações inclusive arrays de informações como Media que armazena todas as imagens do imóvel.
No caso abaixo, o segundo array
pega $imovel->Media->Item
e faz uma listagem das fotos que estão no imóvel.
<?php
$xml = simplexml_load_file("xml_vivareal.xml") or die("Error: Cannot create object");
$array = $xml->Listings->Listing;
$number = 1;
foreach ($array as $imovel) {
echo $number++ ." - ". $imovel->ListingID . "<br>";
echo $imovel->Title . "<br>";
foreach ($imovel->Media->Item as $fotos) {
echo $fotos . "<br>";
}
echo "<br>";
}
Resultado produzido:
Uma maneira alternativa é armazenando o conteúdo HTML e imprimir (echo) tudo no final, podendo assim usar a função implode no lugar do foreach interno.
Veja o código abaixo:
<?php
$xml = simplexml_load_file("xml_vivareal.xml") or die("Error: Cannot create object");
$array = $xml->Listings->Listing;
$number = 1;
$html = '';
foreach ($array as $imovel) {
$html .= $number++ ." - ". $imovel->ListingID . "<br>";
$html .= $imovel->Title . "<br>";
$html .= implode("<br>", $imovel->Media->Item);
$html .= "<br>";
}
echo $html;
?>
Acredito que dessa maneira o código fique mais limpo e elegante. Com relação à performance, seria bom que você fizesse um teste nas duas versões e postasse o resultado.
Answered by Brittz on December 22, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP