从xml响应构建数组

时间:2012-08-24 03:54:01

标签: php arrays multidimensional-array

我有一个响应,我正在构建一个数组。我不得不从原始响应中获取某些id来创建另一个rest连接器。代码看起来像这样(借口变量名称,我在一段时间后用完了想法):

foreach ($newArray as $r=>$p){
foreach ($p as $t=>$hoop){


checksession();
$restNew2 = new RESTConnector();


$urlNew2 = "https://localhost:9630/api/users/".$p['user']."/";
$restNew2->createRequest($urlNew2,"GET", null, $_SESSION['cookies'][0]);
$restNew2->sendRequest();


$responseNew2 = $restNew2->getResponse();

$xmlNew2 = new SimpleXMLElement($responseNew2);


$newerArray = array();
foreach ($xmlNew2->children() as $newestChild){
    for($g=0, $count2 = count($xmlNew2); $g < $count2; $g++) {
    $userID = (string)$xmlNew2['id'];
    $first[] = (string)$xmlNew2->name->first;
    $last[] = (string)$xmlNew2->name->last;
$newerArray[$g]['first'] = $first[$g];

}

}
}
}

如果我打印数组,它看起来像:

Array
(
[0] => Array
    (
        [first] => LightSpeed
    )

[1] => Array
    (
        [first] => LightSpeed
    )

[2] => Array
    (
        [first] => LightSpeed
    )

[3] => Array
    (
        [first] => LightSpeed
    )

[4] => Array
    (
        [first] => LightSpeed
    )

[5] => Array
    (
        [first] => LightSpeed
    )

[6] => Array
    (
        [first] => LightSpeed
    )

[7] => Array
    (
        [first] => LightSpeed
    )

[8] => Array
    (
        [first] => LightSpeed
    )

[9] => Array
    (
        [first] => LightSpeed
    )

[10] => Array
    (
        [first] => LightSpeed
    )

[11] => Array
    (
        [first] => LightSpeed
    )

[12] => Array
    (
        [first] => LightSpeed
    )

[13] => Array
    (
        [first] => LightSpeed
    )

[14] => Array
    (
        [first] => LightSpeed
    )

[15] => Array
    (
        [first] => LightSpeed
    )

[16] => Array
    (
        [first] => LightSpeed
    )

[17] => Array
    (
        [first] => LightSpeed
    )

[18] => Array
    (
        [first] => LightSpeed
    )
}

我试图获取用户名的18个发票,但用户名应该是全不同的。当我print_r($ first}(这是响应中用户的第一个名字)时,我得到了近2000个数组条目,其中显示了那些不同的用户名。我已经搞乱了几个小时而且无法得到它。请帮助!

1 个答案:

答案 0 :(得分:0)

试试这个:

$xmlNew2 = new SimpleXMLElement($responseNew2);
$new_array = json_decode(json_encode($xmlNew2));

然后循环$new_array。这应该更容易使用。