foreach
може да повтори всеки масив или обект, който реализира преминаване. Резултатът от PDOStatement::fetch()
е записът/редът. Просто предоставете изявлението на foreach.
foreach($statement as $row) { ...
По-добрият API за изхвърляния като този е XMLWriter . Той записва резултата директно в поток, без първо да съхранява целия документ в паметта. Използването на XML API също ще се погрижи за избягването, ако е необходимо. Ето един малък пример:
$statement = [
[ 'name' => 'one', 'location' => '...', /* ... */],
[ 'name' => 'two', 'location' => '...', /* ... */]
];
$xmlWriter = new XMLWriter();
$xmlWriter->openUri('php://stdout');
$xmlWriter->startDocument();
$xmlWriter->setIndent(2);
$xmlWriter->startElement('markers');
foreach ($statement as $row) {
$xmlWriter->startElement('marker');
$xmlWriter->writeAttribute('name', $row['name']);
/* other attributes ... */
$xmlWriter->endElement();
}
$xmlWriter->endElement();
$xmlWriter->endDocument();
Изход:
<?xml version="1.0"?>
<markers>
<marker name="one"/>
<marker name="two"/>
</markers>
В DOM създавате, добавяте и конфигурирате възли. Ето малък пример:https://stackoverflow.com/a/21760903/2265374