How can XML data be efficiently converted into a native PHP array for better performance?

When converting XML data into a native PHP array, using PHP's built-in SimpleXMLElement class is a common approach. However, this method can be inefficient for large XML files as it involves parsing the entire document. To improve performance, a more efficient approach is to use the XMLReader class, which allows for streaming parsing of XML data, reducing memory usage and improving processing speed.

$xmlFile = 'example.xml';

$reader = new XMLReader();
$reader->open($xmlFile);

$data = [];
while ($reader->read()) {
    if ($reader->nodeType == XMLReader::ELEMENT) {
        $nodeName = $reader->name;
        $reader->read();
        $data[$nodeName] = $reader->value;
    }
}

$reader->close();

print_r($data);