有一个xml文件,内容如下(我给出部分代码):
<categories>
<category id="336085411">НОВИНКИ</category>
<category id="335086611">ВСЕ ТОВАРЫ</category>
<category id="122129011">ПОСТЕЛЬНОЕ БЕЛЬЕ</category>
<category id="341320011" parentId="122129011">КПБ НА РЕЗИНКЕ</category>
</categories>
我使用以下代码将其转换为 json:
$array = json_decode(json_encode( (array) simplexml_load_string($dataXML) ), 1);
结果,我得到一个这样的数组:
0: НОВИНКИ
1: ВСЕ ТОВАРЫ
2: ПОСТЕЛЬНОЕ БЕЛЬЕ
3: КПБ НА РЕЗИНКЕ
我希望数组键等于 id ( category id)
这怎么可能实现?
属性本身不会成为数组的键,必须通过绕过节点手动组装。
或多或少像这样
正式地,在您的代码片段中,当以 json 编码时,会发生类似这样的事情,
array_map($fn($c) => (string) $c)在输出中仅给出节点的文本值。然后它已经用 json 编码并解码成一个数组。所以属性将无处出现。