@ 2013-08-28T14:18:19Z <?php
$context = [
'mes' => [
'attributes' => [
't' => 'AddEvent',
'id' => 'test_id',
],
'ev' => [
'attributes' => [
'evt' => 'packet20130828ki3si0',
'src' => 'NVV',
'st' => 'test',
'start' => '12423511247',
'stop' => '12423991978',
'addrtype' => 'MB',
'clntID' => '+380957700418',
'lg' => '',
'bank' => '',
'lang' => '',
'prior' => '',
'brnm' => '',
'extref' => '',
'intref' => '',
'extaddrtype' => '',
'extaddrid' => '',
'recall' => '',
],
'attr' => [
[
'attributes' => [
'code' => '1',
'val' => '11',
],
],
[
'attributes' => [
'code' => '2',
'val' => '12',
],
],
],
'hist' => [
[
'attributes' => [
'st' => '',
'ch' => '',
'lg' => '',
'con' => '',
'com' => '',
'addrtype' => '',
'addrid' => '',
'dt' => '',
'contactId' => '',
],
],
],
],
],
];
class Conv
{
protected $res;
protected $context;
public function __construct(array $context)
{
if (count($context) != 1) {
throw new Exception('Must be only one root element', 500);
}
$this->context = $context;
$this->init(key($this->context));
}
public function conv() {
return $this->a2x(current($this->context), $this->res)->asXML();
}
protected function init($root) {
$this->res = new SimpleXMLElement("<{$root}/>");
}
protected function addAttribs(array $attribs, SimpleXMLElement $node)
{
if (count($attribs)) {
foreach ($value as $attrKey => $attrVal) {
$node->addAttribute($attrKey, $attrVal);
}
}
return $node;
}
protected function a2x(array $inner, SimpleXMLElement $node, $caption = 'item')
{
if (isset($inner['attributes'])) {
$this->addAttribs($inner['attributes'], $node);
unset($inner['attributes']);
}
if (count($inner)) {
if ($this->isEnumeration($inner)) {
foreach ($inner as $item) {
$subNode = $node->addChild($caption);
$this->a2x($value, $subNode);
}
} else {
foreach ($inner as $key => $value) {
$subNode = $node->addChild($key);
$this->a2x($value, $subNode);
}
}
}
return $this->res;
}
protected function isEnumeration(array $items)
{
$keys = array_keys($items);
foreach ($keys as $key) {
if (!is_numeric($key)) {
return false
}
}
return true;
}
}
$a2x = new Conv($context);
var_dump($a2x->conv()); //->asXML();
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 5.4.19 0.027 0.033 19.30 5.4.18 0.030 0.057 19.07 5.4.17 0.023 0.040 19.21 5.4.16 0.023 0.073 19.14 5.4.15 0.040 0.063 18.97 5.4.14 0.020 0.047 16.38 5.4.13 0.030 0.053 16.36 5.4.12 0.023 0.073 16.47 5.4.11 0.023 0.067 16.37 5.4.10 0.030 0.057 16.54 5.4.9 0.030 0.063 16.51 5.4.8 0.023 0.053 16.50 5.4.7 0.030 0.057 16.17 5.4.6 0.027 0.057 16.51 5.4.5 0.037 0.060 16.45 5.4.4 0.027 0.070 16.43 5.4.3 0.027 0.057 16.54 5.4.2 0.030 0.047 16.51 5.4.1 0.030 0.033 16.52 5.4.0 0.027 0.067 15.80 5.3.27 0.040 0.057 14.44 5.3.26 0.033 0.047 14.45 5.3.25 0.027 0.063 14.46 5.3.24 0.033 0.047 14.65 5.3.23 0.033 0.067 14.66 5.3.22 0.033 0.067 14.52 5.3.21 0.027 0.047 14.52 5.3.20 0.030 0.043 14.59 5.3.19 0.037 0.063 14.60 5.3.18 0.033 0.070 14.44 5.3.17 0.033 0.050 14.47 5.3.16 0.030 0.040 14.46 5.3.15 0.027 0.060 14.59 5.3.14 0.030 0.060 14.43 5.3.13 0.027 0.047 14.40 5.3.12 0.023 0.040 14.39 5.3.11 0.027 0.060 14.41 5.3.10 0.020 0.040 13.95 5.3.9 0.027 0.047 13.86 5.3.8 0.027 0.037 13.81 5.3.7 0.033 0.063 14.11 5.3.6 0.027 0.060 13.95 5.3.5 0.030 0.053 13.79 5.3.4 0.037 0.063 13.80 5.3.3 0.027 0.043 13.75 5.3.2 0.027 0.060 13.64 5.3.1 0.040 0.060 13.51 5.3.0 0.030 0.047 13.58
preferences:dark mode live preview
140.51 ms | 1394 KiB | 7 Q