Есть xml Имена русскими буквами Так вот SimpleXMLElement это "кодирует" в а как чтобы ключики массива были русскими словами как в xml ?
Атрибуты вытаскиваются отдельно. simpleXML возвращает объект, а не массив. Просмотрите его под var_dump, поймете, как вам вытащить то, что вас интересует. Увы, без ручной обработки результата не обойтись. Хотите 100% автоматическую перегонку массива в серию и обратно - юзайте JSON.
["param"]=> array(4) { [0]=> string(14) "Мужской" [1]=> string(12) "черный" [2]=> string(2) "98" [3]=> string(3) "102" } не хочет руских ключей делать
Ну...во-первых у вас имена атрибутов не на русском. Во вторых, у вас эти ключи хранятся в атрибутах. То, что вы атрибут name="Размер" прописали, не значит, что оно должно name как ключ использовать. Это для вас там name, а для XML - последовательность из 4 символов. Там может быть хоть name, хоть qweqrdfassda. Это просто ключ параметра. Вы должны сами его значение из полученного объекта выташить, и сами использовать как ключ. И, в итоге, сформировать массив. Да, самостоятельно. Кнопки "сделай хорошо" не существует. Тут - никак. Но на будущее - хотите хранить структурированно сериализованные массивы? Храните их в JSON.
Да при чем тут регулярка-то? Неужто так тяжело по массиву объектов пройтись и повытаскивать нужные данные из него?
через var_dump вижу ["param"]=> array(4) { [0]=> string(14) "Мужской" [1]=> string(12) "черный" [2]=> string(2) "98" [3]=> string(3) "102" } а должно быть ["param"]=> array(4) { ["Пол"]=> string(14) "Мужской" ["Цвет"]=> string(12) "черный" ["Размер"]=> string(2) "98" ["Размер"]=> string(3) "102" }
Должно? Делайте. Я не знаю, что вам еще сказать. Вы категорически не хотите меня слышать. Эти ваши "русские ключи" с точки зрения XML - не ключи, а просто значения атрибутов. Доступ к атрибутам осуществляется так: https://php.net/manual/ru/simplexmlelement.attributes