3v4l.org

run code in 300+ PHP versions simultaneously
<?php function process_xml(string $xml_string) : array { // Process XML $xml = simplexml_load_string($xml_string); // Return array $my_json['messages'] = []; // Iterate over nodes foreach($xml->children() as $message) { // Technically not needed $tmp = []; // Iterate over attributes foreach($message->attributes() as $name => $value) { $tmp[$name] = $value; } $my_json['messages'][] = $tmp; } return $my_json; } $xml_string_1 = <<<EOT <messages> <message message="asdf" franchise_id="0000" id="1661170418wng204" posted="Mon Aug 22 8:13:38 a.m. ET 2022"/> </messages> EOT; $xml_string_2 = <<<EOT <messages> <message franchise_id="0000" id="1661174329csw208" posted="Mon Aug 22 9:18:49 a.m. ET 2022" message="asdf"/> <message id="1661170418wng204" posted="Mon Aug 22 8:13:38 a.m. ET 2022" franchise_id="0000" message="asdf"/> </messages> EOT; echo json_encode(process_xml($xml_string_1)); echo PHP_EOL; echo json_encode(process_xml($xml_string_2));
Output for 8.1.9 - 8.1.33, 8.2.10 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
{"messages":[{"message":{"0":"asdf"},"franchise_id":{"0":"0000"},"id":{"0":"1661170418wng204"},"posted":{"0":"Mon Aug 22 8:13:38 a.m. ET 2022"}}]} {"messages":[{"franchise_id":{"0":"0000"},"id":{"0":"1661174329csw208"},"posted":{"0":"Mon Aug 22 9:18:49 a.m. ET 2022"},"message":{"0":"asdf"}},{"id":{"0":"1661170418wng204"},"posted":{"0":"Mon Aug 22 8:13:38 a.m. ET 2022"},"franchise_id":{"0":"0000"},"message":{"0":"asdf"}}]}

preferences:
78.33 ms | 407 KiB | 5 Q