php implode 没有按预期工作

Dec*_*out 2 php simplexml implode

我制作了一些 SimpleXMLObject 并将其转换为数组并内爆它们,但结果不是内爆字符串,而是单独的数组的第一个元素。

更有趣的是,它在我的本地服务器(版本为 5.4.4)中按预期工作,但故障发生在我的 php 版本为 5.3.13 的实时服务器中,这就是我的内爆的样子

$im_data = implode( '#', (array)$sync->datas->data);
Run Code Online (Sandbox Code Playgroud)

目标数组如下:

[datas] => SimpleXMLElement Object
    (
        [data] => Array
            (
                [0] => AAzdfAA
                [1] => BBdBB
                [2] => BBDD
                [3] => CCCCzsdfC
            )

    )
Run Code Online (Sandbox Code Playgroud)

但结果不是 AAzdfAA#BBdBB#BBDD#CCCCzsdfC,而是我的实时服务器中的 AAzdfAA。在我的本地服务器中,它按预期工作:AAzdfAA#BBdBB#BBDD#CCCCzsdfC

Lui*_*iri 5

我能够在我这边重现您的问题。并使用此解决方法来获得所需的输出:

<?php

$xml = "<xml>
            <datas>
                <data>AAzdfAA</data>
                <data>BBdBB</data>
                <data>BBDD</data>
                <data>CCCCzsdfC</data>
            </datas>
        </xml>";

$sync = simplexml_load_string($xml);

$data = (array)$sync->datas;

$im_data = implode( '#', $data['data']);

echo $im_data; //Outputs: AAzdfAA#BBdBB#BBDD#CCCCzsdfC
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。