Хорошо. Надеюсь, у меня все получилось. Ваш вход выглядит примерно так:
kv_input = [("a", 1), ("a", 2), ("a", 3), ("b", 1), ("b", 5)]
, и вы хотите получить что-то вроде этого:
kmv_output = [("a", [1, 2, 3]), ("b", [1, 5])]
Тогда это может выполнить задание (см. здесь ):
d = dict()
for k, v in kv_input:
d.setdefault(k, list()).append(v)
kmv_output = list(d.items())
Если я ошибаюсь, скажите, пожалуйста, чтобы я мог настроить это на ваши нужды.
PS: a.append([b])
всегда возвращается None
, Возможно, вы захотите наблюдать либо [b]
, либо a
, но не результат append
.
Привет неизвестно. Для этого вам необходимо использовать интерфейс DOMElement для ваших объектов SimpleXML.
<?php
$s = new SimpleXMLElement('<root/>');
$t = new DOMElement('child');
$dom = dom_import_simplexml($s);
$dom->appendChild($t);
echo $s->asXML();
// <root><child/></root>
Если вам нужны более конкретные детали, сообщите мне. В документации и комментариях для метода dom_import_simplexml () есть несколько примеров: http://php.net/dom_import_simplexml
Я не уверен, что это поможет, но вы также можете расширить SimpleXML, чтобы работать так, как вы ожидаете. Вот проект, над которым я работал в классе bLibrary Xml . Вы можете посмотреть на него, чтобы настроить SimpleXml на работу, как вы ожидаете.